Tabla de contenido
Uso de frijol
1 configuración básica de etiqueta de frijol
Spring crea el objeto de configuración.
De forma predeterminada, llama al constructor sin parámetros en la clase. Si no hay un constructor sin parámetros, no se puede crear correctamente.
Atributos básicos:
id: el identificador único de la instancia de Bean en el contenedor Spring
clase: nombre completo de Bean
3.2 Configuración del rango de etiquetas de frijoles
Alcance: se refiere al alcance del objeto, el valor es el siguiente:
Rangos | Descripción |
---|---|
único | Valor predeterminado, singleton |
prototipo | Práctico |
petición | En el proyecto WEB, Spring crea un objeto Bean y almacena el objeto en el campo de solicitud |
sesión | En el proyecto WEB, Spring crea un objeto Bean y almacena el objeto en el campo de sesión |
sesión global | En el proyecto WEB, se aplica en el entorno de portlet.Si no hay un entorno de portlet, globalSession es equivalente a session |
1) Cuando el valor del alcance es singleton
Número de instanciación de frijol: 1
Tiempo de creación de instancias de Bean: cuando se carga el archivo principal de Spring, cree una instancia de la instancia de Bean configurada
Ciclo de vida de Bean:
Creación de objetos: cuando se carga la aplicación y se crea el contenedor, se crea el objeto
Objeto en ejecución: mientras el contenedor esté allí, el objeto siempre estará vivo
Destrucción de objetos: cuando se descarga la aplicación y se destruye el contenedor, se destruye el objeto
2) Cuando el valor del alcance es prototipo
Número de instancias de Bean: múltiples
Tiempo de creación de instancias de Bean: instancia el Bean cuando se llama al método getBean ()
Creación de objetos: cuando utilice un objeto, cree una nueva instancia de objeto.
Operación del objeto: mientras el objeto esté en uso, siempre estará vivo
Destrucción de objetos: cuando un objeto no se usa durante mucho tiempo, el recolector de basura de Java lo recicla
3.3 Configuración del ciclo de vida del frijol
init-method: especifique el nombre del método de inicialización en la clase
método de destrucción: especifique el nombre del método de destrucción en la clase
3.4 Tres formas de instanciación de frijoles
1) Utilice el método de construcción sin argumentos para crear una instancia
Creará un objeto de clase de acuerdo con el constructor sin argumentos predeterminado. Si no hay un constructor sin argumentos predeterminado en el bean, la creación fallará.
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
2) Creación de instancias del método estático de fábrica
El método estático de la fábrica devuelve la instancia de Bean.
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
<bean id="userDao" class="com.itheima.factory.StaticFactoryBean"
factory-method="createUserDao" />
3) Creación de instancias del método de instancia de fábrica
El método no estático de la fábrica devuelve la instancia de Bean
public class DynamicFactoryBean {
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
<bean id="factoryBean" class="com.itheima.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>