..


Enlaces patrocinados

Núcleo de contenedores - contenedores IoC

El contenedor IoC es la parte que se encarga de crear instancias de la primavera y configurar los objetos que se colocan en ella, que se llaman judías.

Los granos se configura a través de metadatos que pueden ser archivos XML o anotaciones Java . De manera predeterminada, los metadatos es de sólo lectura de XML, para permitir el uso de anotaciones no es necesario configurar el ApplicationContext.

Como se mencionó anteriormente parte de IoC y DI se lleva a cabo a través de la BeanFactory y ApplicationContext el. A medida que el ApplicationContext es un superconjunto de la BeanFactory, se recomienda, ya partir de ahora nos referiremos sólo all'ApplicationContext.
Hay varios tipos siempre en la primavera de ApplicationContext, dependiendo de la aplicación debe ser desarrollado. Por ejemplo, para aplicaciones independientes que se ClassPathXmlApplicationContext FileSystemXmlApplicationContext, mientras que para las aplicaciones empresariales es el WebApplicationContext, que se crea una instancia a través de un oyente serlvet.
Todos necesitamos de los metadatos de configuración ApplicationContext y entonces tenemos que crear instancias de un primero en escribir un archivo xml.
Tomemos un ejemplo, de nuevo tomando como referencia la gestión de una tienda de videos y ver cómo inicializar la clase VideoManager COI.
Primero creamos un archivo con los metadatos que llamamos applicationContext.xml:






 <beans xmlns="http://www.springframework.org/schema/beans" ............>





  



 <- Las importaciones y otros metadatos ->



  



 <import resource="otherbeans.xml"/>

	



  



 <- DEFINICIÓN DE SERVICIO ->

						

  



 <bean id="dvdService" class="it.mrwebmaster.DvdServiceImpl" scope="singleton" />





  



 <- DEFINICIÓN VIDEO MANAGER ->



  



 <bean id="videoManager" class="it.mrwebmaster.VideoManager" scope="prototype">



    



 propiedad> name="dvdService" ref="dvdService" />



  



 </ Bean>



	





 </ Beans>



En este ejemplo se demuestra que es posible la integración de los metadatos de múltiples archivos de definición que figura en el fin de dividir a los granos. En la actualidad es importante para entender la sintaxis de los metadatos (que se explicará más adelante), pero el potencial de la primavera.
Eliminar del constructor de la clase para inicializar el dvdService VideoManager y crear los getters y setters para la dvdService:






 VideoManager pública () {



  



 super ();







 }









 <Dvd> Lista getAvalaibleDvdList pública () {



  



 //......



  



 availabeDvdList retorno;







 }









 setDvdService public void (DvdService dvdService) {



  



 this.dvdService dvdService =;







 }









 getDvdService DvdService pública () {



  



 dvdService retorno;







 }



Ahora vamos a ver cómo inicializar el COI:





 / **



 



 * Instanz el COI contenedor



 



 * /







 ApplicationContext ApplicationContext ClassPathXmlApplicationContext = new ("applicationContext.xml");









 / **



 



 * Recuperar la clase VideoManager



 



 * /







 VideoManager VideoManager = (VideoManager) applicationContext.getBean ("VideoManager");









 / **



 



 * Imprimir la lista de películas disponibles



 



 * /







 Lista <Dvd> avalaibleDvdList videoManager.getAvalaibleDvdList = ();









 para (DVD DVD: avalaibleDvdList) {



  



 System.out.println (dvd.getTitolo ());







 }



Como hemos visto, a escribir una pocas líneas de código XML y hemos sido capaces de configurar completamente nuestra aplicación.

Las ventajas de la utilización de la primavera, que han sido descritos en los capítulos anteriores se destacan:

  • Los granos en nuestra aplicación, y VideoManger DvdServiceImpl Nessus no implementa la interfaz o clase abstracta, y las dependencias de los contenedores dall'IoC son nulas.
  • Si usted decide cambiar la dell'DvdService ejecución, o añadir otros, solo cambia el archivo applicationContext.xml, sin tocar el código de VideoManager, gracias a la utilización de interfaces.
  • También gracias a la utilización de interfaces es fácil de crear pruebas para nuestra aplicación.

IoC Container

Refiriéndose de nuevo a nuestro ejemplo, podría utilizar el FileSystemXmlApplicationContext lo siguiente:

 



 ApplicationContext ApplicationContext FileSystemXmlApplicationContext = new ("/ ruta / applicationContext.xml");

 
En lugar de usar el WebApplicationContext en una aplicación empresarial, es necesario agregar en nuestro web.xml (el ejemplo completo de una aplicación empresarial que utiliza Spring illutrato será el último capítulo de esta guía):





 <- PRIMAVERA ->







 <context-param>



  



 <param-name> contextConfigLocation </ param-name>



  



 <param-value> classpath *: applicationContext.xml </ param-value>







 </ Context-param>









 <listener>



  



 <listener-class> org.springframework.web.context.ContextLoaderListener </ listener-class>







 </ Listener>



Primavera Guía Java
E-Learning
Linux (Curso) Linux (Curso)
Guía completa de código abierto del sistema. A partir de 49 €.
PHP (Curso) PHP (Curso)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 49 €.
Ruby y Ruby on Rails (Curso) Ruby y Ruby on Rails (Curso)
Crear aplicaciones de software y la Web con Ruby y RoR. A partir de 39 €.
Enlaces patrocinados