El contenedor IoC es responsable de crear instancias, configurar y ensamblar los objetos. El contenedor IoC obtiene información del archivo XML y funciona en consecuencia. Las principales tareas realizadas por el contenedor IoC son:
- para crear una instancia de la clase de aplicación
- para configurar el objeto
- para ensamblar las dependencias entre los objetos.
Hay dos tipos de contenedores de IoC. Ellos son:
Diferencia entre BeanFactory y ApplicationContext
La org.springframework.beans.factory. fábrica de frijoles y el org.springframework.context. Contexto de aplicación Las interfaces actúan como contenedor de IoC. La interfaz ApplicationContext está construida sobre la interfaz BeanFactory. Agrega algunas funciones adicionales que BeanFactory, como integración simple con AOP de Spring, manejo de recursos de mensajes (para I18N), propagación de eventos, contexto específico de la capa de aplicación (por ejemplo, WebApplicationContext) para aplicaciones web. Por tanto, es mejor utilizar ApplicationContext que BeanFactory.
Usando BeanFactory
XmlBeanFactory es la clase de implementación de la interfaz BeanFactory. Para usar BeanFactory, necesitamos crear la instancia de la clase XmlBeanFactory como se indica a continuación:
Resource resource=new ClassPathResource('applicationContext.xml'); BeanFactory factory=new XmlBeanFactory(resource);
El constructor de la clase XmlBeanFactory recibe el objeto Resource, por lo que debemos pasar el objeto de recurso para crear el objeto de BeanFactory.
Usando el contexto de aplicación
La clase ClassPathXmlApplicationContext es la clase de implementación de la interfaz ApplicationContext. Necesitamos crear una instancia de la clase ClassPathXmlApplicationContext para usar ApplicationContext como se indica a continuación:
ApplicationContext context = new ClassPathXmlApplicationContext('applicationContext.xml');
El constructor de la clase ClassPathXmlApplicationContext recibe una cadena, por lo que podemos pasar el nombre del archivo xml para crear la instancia de ApplicationContext.
descargue el ejemplo para usar ApplicationContext