martes, 6 de octubre de 2015

Spring y Código

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.
framework-1.gif
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.
variosframeworks-1.gifEsta situación genera problemas ya que cada framework es totalmente independiente y gestiona su propio ciclo de vida de los objetos.
integracion1.gif

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 esSpring basandose en ficheros xml o anotaciones el encargado de construir todos los objetos que la aplicación va a utilizar.
spring.gif
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.
integración3.gif

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="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://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.

No hay comentarios:

Publicar un comentario