Spring SmartLifecycle

El interfaz SmartLifecycle es una extensión del interfaz Lifecycle para aquellos objetos que requieren arrancarse en un refresco del ApplicationContext o hacer un shutdown en un orden particular.

Tiene estos métodos:

Aparte de los heredados de Lifecycle:

El método isAutoStartup() indica si el objeto debe ser arrancado cuando se hace un refresco del context.

El método stop(Runnable) es útil para objetos con un shutdown asíncrono

El interfaz hereda también de Phased y el método Phased.getPhase() devuelve un valor que indica en que fase debe arrancarse y pararse el componente.

El proceso de arranque comienza en la fase Integer.MIN_VALUE (0) y lo máximo possible es Integer.MAX_VALUE. Por ejemplo si un componente B depende para arrancar del arranque de un componente A el componente A debe tener un valor de Phase menor (o esto o incluir el depends-on)

Deja un comentario