Lifecycle interface for those objects that require
to be started upon ApplicationContext refresh and/or shutdown in a
particular order.
The isAutoStartup() return value indicates whether this object should
be started at the time of a context refresh. The callback-accepting
stop(Runnable) method is useful for objects that have an asynchronous
shutdown process. Any implementation of this interface must invoke the
callback's run() method upon shutdown completion to avoid unnecessary
delays in the overall ApplicationContext shutdown.
This interface extends Phased, and the getPhase() method's
return value indicates the phase within which this Lifecycle component
should be started and stopped. The startup process begins with the lowest
phase value and ends with the highest phase value (Integer.MIN_VALUE
is the lowest possible, and Integer.MAX_VALUE is the highest possible).
The shutdown process will apply the reverse order. Any components with the
same value will be arbitrarily ordered within the same phase.
Example: if component B depends on component A having already started, then component A should have a lower phase value than component B. During the shutdown process, component B would be stopped before component A.
Any explicit "depends-on" relationship will take precedence over the phase order such that the dependent bean always starts after its dependency and always stops before its dependency.
Any Lifecycle components within the context that do not also
implement SmartLifecycle will be treated as if they have a phase
value of 0. This allows a SmartLifecycle component to start
before those Lifecycle components if the SmartLifecycle
component has a negative phase value, or the SmartLifecycle component
may start after those Lifecycle components if the SmartLifecycle
component has a positive phase value.
Note that, due to the auto-startup support in SmartLifecycle, a
SmartLifecycle bean instance will usually get initialized on startup
of the application context in any case. As a consequence, the bean definition
lazy-init flag has very limited actual effect on SmartLifecycle beans.
LifecycleProcessor, ConfigurableApplicationContext
| Modifier and Type | Field and Description |
|---|---|
| public static final int | DEFAULT_PHASE
The default phase for |
| Modifier and Type | Method and Description |
|---|---|
| public default int | getPhase()
Implements org. The default implementation returns |
| public default boolean | isAutoStartup()
Returns |
| public default void |
| DEFAULT_PHASE | back to summary |
|---|---|
| public static final int DEFAULT_PHASE The default phase for This is different from the common phase | |
| getPhase | back to summary |
|---|---|
| public default int getPhase() Implements org. Return the phase that this lifecycle object is supposed to run in. The default implementation returns | |
| isAutoStartup | back to summary |
|---|---|
| public default boolean isAutoStartup() Returns A value of The default implementation returns | |
| stop | back to summary |
|---|---|
| public default void stop(Runnable callback) Indicates that a Lifecycle component must stop if it is currently running. The provided callback is used by the The The default implementation delegates to
| |