Contenedor IoC

El contenedor IoC se encarga de instanciar, configurar y ensamblar los objetos. El contenedor IoC obtiene información del archivo XML y trabaja en consecuencia.Las principales tareas que realiza el contenedor IoC son:

  • Instanciar la clase de la aplicación
  • Configurar el objeto
  • Ensamblar las dependencias entre los objetos
    • Hay dos tipos de contenedores IoC. Son:

  1. BeanFactory
  2. ApplicationContext

Diferencia entre BeanFactory y ApplicationContext

Las interfaces org.springframework.beans.factory.BeanFactory y org.springframework.context.ApplicationContext actúan como contenedor IoC. La interfaz ApplicationContext está construida sobre la interfaz BeanFactory. Añade algunas funcionalidades adicionales a las de BeanFactory, como la integración sencilla con la AOP de Spring, la gestión de recursos de mensajes (para I18N), la propagación de eventos, el contexto específico de la capa de aplicación (por ejemplo, WebApplicationContext) para la aplicación web. Así que es mejor usar ApplicationContext que BeanFactory.

Usando BeanFactory

El XmlBeanFactory es la clase de implementación de la interfaz BeanFactory. Para utilizar el BeanFactory, tenemos que crear la instancia de la clase XmlBeanFactory como se indica a continuación:

El constructor de la clase XmlBeanFactory recibe el objeto Resource por lo que tenemos que pasar el objeto resource para crear el objeto de BeanFactory.

Usando ApplicationContext

La clase ClassPathXmlApplicationContext es la clase de implementación de la interfaz ApplicationContext. Tenemos que instanciar la clase ClassPathXmlApplicationContext para utilizar el ApplicationContext como se indica a continuación:

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.