Muchas veces me encuentro con desarrolladores que vienen de otras plataformas y desean aprender Java debido a las amplias posibilidades que el mercado laboral tiene. Mas pronto que tarde se ven en la imperiosa necesidad de aprender Spring Framework. Sin embargo muchos de los conceptos que Spring aporta no son conceptos elementales y cuesta aclarar las ideas y hacerse una composición de lugar. ¿Qué es exactamente Spring Framework?.
El universo de los Frameworks
Normalmente cuando nosotros trabajamos en cualquier plataforma solemos utilizar algún tipo de framework. Estos framework no son ni mas ni menos que un conjunto de clases que nos facilitan sobremanera el trabajo cotidiano. Utilizamos el framework para crear un conjunto de objetos que nuestra aplicación necesita.
En la mayoría de las ocasiones para desarrollar la aplicación que necesitamos no nos es suficiente con usar un único framework sino que necesitamos utilizar varios frameworks. Cada uno de los cuales generará su propio conjunto de objetos.
Esta situación genera problemas ya que cada framework es totalmente independiente y gestiona su propio ciclo de vida de los objetos.
Spring Framework
Spring ayuda a solventar este problema ya que cambia las responsabilidades y en vez de que el propio desarrollador sea el encargado de generar los objetos de cada uno de los frameworks es Spring basandose en ficheros xml o anotaciones el encargado de construir todos los objetos que la aplicación va a utilizar.
De esta manera al ser Spring el encargado de inicializar todos los objetos de los distintos frameworks, es también el responsable de asegurarnos que se integran de la forma correcta.
Spring y Código
Así pues es muy común encontrarse aplicaciones de Spring framework con amplios ficheros XML que se encargan de inicializar los diferentes objetos como se muestra a continuación.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="//www.springframework.org/schema/beans"
xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="//www.springframework.org/schema/beans
//www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="ServicioA" class="com.genbetadev.ServicioA">
<property name="mensaje" value="Hola GenBetaDev"/>
</bean>
<bean id="ServicioB" class="com.genbetadev.ServicioB">
<property name="mensaje" value="Hola GenBetaDev 2"/>
</bean>
</beans>
Recordemos que también se pueden configurar a traves de anotaciones con @Autowired usando el principio de Convención sobre Configuración. Esto reduciría de forma significativa el tamaño del fichero XML.
En GenBetaDev | Introducción a Spring Framework