Introduction To The Spring Ioc Container And Beans
Introduction to the Spring IoC Container and Beans
Este capítulo cubre la implementación del principio de Inversión de Control (IoC, por sus siglas en inglés) en el Spring Framework. La inyección de dependencias (DI, Dependency Injection) es una forma especializada de IoC, mediante la cual los objetos definen sus dependencias (es decir, los otros objetos con los que trabajan) únicamente a través de argumentos de constructores, argumentos a un método factory o propiedades que se establecen en la instancia del objeto después de que se construya o ser devuelto desde un factory method.
El contenedor de IoC luego inyecta esas dependencias cuando se crea el bean.
Este proceso es fundamentalmente la inversión (de ahí el nombre, Inversión de Control) del mecanismo en el que el propio bean controla la instanciación o ubicación de sus dependencias mediante la construcción directa de clases o un mecanismo como el patrón Service Locator (Localizador de Servicios).
Los paquetes org.springframework.beans y org.springframework.context son la base del contenedor de IoC de Spring Framework. La interfaz BeanFactory proporciona un mecanismo de configuración avanzado capaz de gestionar cualquier tipo de objeto. ApplicationContext es una subinterfaz de BeanFactory. Añade:
- Integración más sencilla con las características de AOP (Programación Orientada a Aspectos) de Spring.
- Manejo de recursos de mensajes (para su uso en internacionalización).
- Publicación de eventos.
- Contextos específicos de la capa de aplicación, como
WebApplicationContextpara su uso en aplicaciones web.
En resumen, BeanFactory proporciona el marco de configuración y la funcionalidad básica, mientras que ApplicationContext añade funcionalidades más específicas para entornos empresariales. ApplicationContext es un superconjunto completo de BeanFactory y se utiliza exclusivamente en este capítulo en las descripciones del contenedor de IoC de Spring. Para obtener más información sobre el uso de BeanFactory en lugar de ApplicationContext, consulte la sección que cubre la API de BeanFactory.
En Spring, los objetos que forman la columna vertebral de su aplicación y que son gestionados por el contenedor de IoC de Spring se denominan beans. Un bean es un objeto que es instanciado, ensamblado y gestionado por un contenedor de IoC de Spring. De lo contrario, un bean es simplemente uno de los muchos objetos en su aplicación. Los beans y las dependencias entre ellos se reflejan en los metadatos de configuración utilizados por el contenedor.