Conceptos básicos de SpringBoot2.x: métodos del ciclo de vida del Bean (implementación de la interfaz del ciclo de vida)
Ubicación de origen:
El Bean se crea en el método FinishBeanFactoryInitialization(beanFactory); Este método también contiene métodos de devolución de llamada para el ciclo de vida del bean. Conceptos básicos de SpringBoot 2.x: métodos del ciclo de vida del Bean (junto con contenedores)
Los beans que implementan la interfaz del ciclo de vida ejecutarán sus métodos del ciclo de vida en el método FinishRefresh(); (En este punto, todos los beans se han inicializado, es decir, la inicialización de Spring se ha completado y está separada de la creación del contenedor Spring).
La interfaz LifeCycle normal solo vuelve a llamar la lógica del método start-stop de la clase de implementación LifeCycle cuando el contexto del contenedor llama explícitamente al método start()/stop(). Esto no significa que se iniciará automáticamente cuando se actualice el contexto.
Cuando el propio ApplicationContext recibe señales de inicio y parada (por ejemplo, en un escenario de parada/reinicio en tiempo de ejecución), el contenedor Spring encontrará todas las clases en el contexto del contenedor que implementan LifeCycle y sus interfaces de subclase, y compruébalos uno por uno. Llame a sus clases de implementación.
Entonces, si el contexto del contenedor Spring no llama explícitamente a los métodos de inicio y destrucción (o cierre, parada), también necesitamos realizar devoluciones de llamada del ciclo de vida, ¿cómo lo hacemos?
Devuelve verdadero si la clase Lifecycle está en el contexto de una llamada para actualizar y desea poder automatizar la devolución de llamada en sí, mientras que un valor falso indica que el componente debe iniciarse con un llamada explícita a start(), que es lo mismo que La implementación normal del ciclo de vida es similar.
Jugando con el ciclo de vida de Spring