Los objetos que forman la columna vertebral de su aplicación y que son administrados por el contenedor Spring IoC se denominan frijoles. Un bean es un objeto que es instanciado, ensamblado y administrado por un contenedor Spring IoC. Estos beans se crean con los metadatos de configuración que proporciona al contenedor. Por ejemplo, en forma de definiciones XML
La definición de frijol contiene la información llamada metadatos de configuración, que es necesario para que el contenedor sepa lo siguiente:
- Cómo crear un frijol
- Detalles del ciclo de vida de Bean
- Dependencias de Bean
Todos los metadatos de configuración anteriores se traducen en un conjunto de las siguientes propiedades que componen cada definición de bean.
No Señor. | Propiedades y descripción |
---|---|
1 |
clase Este atributo es obligatorio y especifica la clase de bean que se utilizará para crear el bean. |
2 |
nombre Este atributo especifica el identificador de frijol de forma única. En los metadatos de configuración basados en XML, se utilizan los atributos id y / o name para especificar los identificadores del bean. |
3 |
alcance Este atributo especifica el alcance de los objetos creados a partir de una definición de bean en particular y se discutirá en el capítulo de alcances de bean. |
4 |
constructor-arg Esto se usa para inyectar las dependencias y se discutirá en capítulos posteriores. |
5 |
propiedades Esto se usa para inyectar las dependencias y se discutirá en capítulos posteriores. |
6 |
modo de cableado automático Esto se usa para inyectar las dependencias y se discutirá en capítulos posteriores. |
7 |
modo de inicialización diferida Un bean inicializado de forma diferida le dice al contenedor de IoC que cree una instancia de bean cuando se solicita por primera vez, en lugar de al inicio. |
8 |
método de inicialización Una devolución de llamada que se llamará justo después de que el contenedor haya establecido todas las propiedades necesarias en el bean. Se discutirá en el capítulo del ciclo de vida del frijol. |
9 |
método de destrucción Una devolución de llamada que se utilizará cuando se destruya el contenedor que contiene el bean. Se discutirá en el capítulo del ciclo de vida del frijol. |
Metadatos de configuración de Spring
El contenedor Spring IoC está totalmente desacoplado del formato en el que se escriben realmente estos metadatos de configuración. A continuación se muestran los tres métodos importantes para proporcionar metadatos de configuración al Spring Container:
- Archivo de configuración basado en XML.
- Configuración basada en anotaciones
- Configuración basada en Java
Ya ha visto cómo los metadatos de configuración basados en XML se proporcionan al contenedor, pero veamos otra muestra de archivo de configuración basado en XML con diferentes definiciones de bean, incluida la inicialización diferida, el método de inicialización y el método de destrucció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"> <!-- A simple bean definition --> <bean id = "..." class = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with lazy init set on --> <bean id = "..." class = "..." lazy-init = "true"> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with initialization method --> <bean id = "..." class = "..." init-method = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with destruction method --> <bean id = "..." class = "..." destroy-method = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --> </beans>
Puede consultar el Ejemplo de Spring Hello World para comprender cómo definir, configurar y crear Spring Beans.
Discutiremos sobre la configuración basada en anotaciones en un capítulo aparte. Se trata intencionalmente en un capítulo separado, ya que queremos que comprenda algunos otros conceptos importantes de Spring, antes de comenzar a programar con Spring Dependency Injection con anotaciones.