Este artículo explora principalmente contenido relacionado sobre el alcance y el ciclo de vida de los frijoles, como sigue.
Alcance de Bean
Spring 3 define cinco ámbitos para Bean, a saber, Singleton (Singleton), prototipo (prototipo), solicitud, sesión y sesión global. Los cinco ámbitos se explican de la siguiente manera:
1.singleton: modo singleton, solo habrá una instancia de frijoles compartidos en el contenedor de COI de primavera, sin importar cuántos frijoles se refieran a él, siempre apuntan al mismo objeto. El alcance de Singleton es el alcance predeterminado en primavera. También puede definir los frijoles como modo singleton y configurarlos como:
<bean id="userDao" scope="singleton"/>
2.Prototipo: modo prototipo. Cada vez que se obtiene un prototipo de frijol definido a través de un contenedor de resorte, el contenedor creará una nueva instancia de Bean. Cada instancia de Bean tiene sus propios atributos y estado, y Singleton solo tiene un objeto en el contexto global. Como regla general, use el alcance prototipo para frijoles con estado y alcance singleton para frijoles sin estado.
3. Requestador: en una solicitud HTTP, el contenedor devolverá la misma instancia del bean. Sin embargo, se generará un nuevo Bean para diferentes solicitudes HTTP, y el bean solo es válido dentro de la solicitud HTTP actual.
<bean id="loginAction" scope="request"/> , para cada solicitud HTTP, el contenedor de primavera crea una nueva instancia de acuerdo con la definición de Bean, y la instancia solo es válida dentro de la solicitud HTTP actual, y otras solicitudes no pueden ver el cambio en el estado de la solicitud actual. Cuando finaliza la solicitud HTTP actual, la instancia de Bean también será destruida.
4.Session: en una sesión HTTP, el contenedor devolverá la misma instancia del bean. Para diferentes solicitudes de sesión, se creará una nueva instancia, y la instancia de Bean solo es válida dentro de la sesión actual.
<bean id="userPreference" scope="session"/> , lo mismo que la solicitud HTTP, crear una nueva instancia cada solicitud de sesión, y no se comparten atributos entre diferentes instancias, y la instancia solo es válida dentro de su propia solicitud de sesión. Si la solicitud finaliza, la instancia será destruida.
5. Sesión global: en una sesión HTTP global, el contenedor devolverá la misma instancia del bean, que solo es válida cuando se usa el contexto del portlet.
El ciclo de vida de un frijol
Después de la introducción del alcance de los frijoles como se mencionó anteriormente, el ciclo de vida de los frijoles se explicará en base al alcance de los frijoles.
Los contenedores de primavera pueden manejar el ciclo de vida de los frijoles bajo el alcance de Singleton. En este alcance, Spring puede saber exactamente cuándo se crea el frijol, cuándo se completa la inicialización y cuándo se destruye. Para los prototipos de granos de alcance, Spring solo es responsable de crearlos. Cuando el contenedor crea una instancia del bean, la instancia del bean se entrega a la administración del código del cliente. El contenedor de primavera ya no rastreará su ciclo de vida y no administrará el ciclo de vida de esos frijoles configurados como alcance prototipo. La ejecución del ciclo de vida de un frijol en la primavera es un proceso muy complejo, y los lectores pueden usar los métodos proporcionados por Spring para personalizar el proceso de creación de frijoles. Los contenedores de primavera hacen mucho trabajo antes de garantizar que se pueda usar una instancia de frijoles:
Resumir
Lo anterior se trata de este artículo que discute el alcance y el ciclo de vida de los frijoles en la primavera. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!