Class DefaultLifecycleProcessor
- java.lang.Object
- org.springframework.context.support.DefaultLifecycleProcessor
- All Implemented Interfaces:
Aware,BeanFactoryAware,Lifecycle,LifecycleProcessor
public class DefaultLifecycleProcessor extends Object implements LifecycleProcessor, BeanFactoryAware
Default implementation of theLifecycleProcessorstrategy.- Since:
- 3.0
- Author:
- Mark Fisher, Juergen Hoeller
Constructor Summary
Constructors Constructor Description DefaultLifecycleProcessor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Map<String,Lifecycle>getLifecycleBeans()Retrieve all applicable Lifecycle beans: all singletons that have already been created, as well as all SmartLifecycle beans (even if they are marked as lazy-init).protected intgetPhase(Lifecycle bean)Determine the lifecycle phase of the given bean.booleanisRunning()Check whether this component is currently running.voidonClose()Notification of context close phase, e.g.voidonRefresh()Notification of context refresh, e.g.voidsetBeanFactory(BeanFactory beanFactory)Callback that supplies the owning factory to a bean instance.voidsetTimeoutPerShutdownPhase(long timeoutPerShutdownPhase)Specify the maximum time allotted in milliseconds for the shutdown of any phase (group of SmartLifecycle beans with the same 'phase' value).voidstart()Start all registered beans that implementLifecycleand are not already running.voidstop()Stop all registered beans that implementLifecycleand are currently running.
Constructor Detail
DefaultLifecycleProcessor
public DefaultLifecycleProcessor()
Method Detail
setTimeoutPerShutdownPhase
public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase)
Specify the maximum time allotted in milliseconds for the shutdown of any phase (group of SmartLifecycle beans with the same 'phase' value).The default value is 30 seconds.
setBeanFactory
public void setBeanFactory(BeanFactory beanFactory)
Description copied from interface:BeanFactoryAwareCallback that supplies the owning factory to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean.afterPropertiesSet()or a custom init-method.- Specified by:
setBeanFactoryin interfaceBeanFactoryAware- Parameters:
beanFactory- owning BeanFactory (nevernull). The bean can immediately call methods on the factory.- See Also:
BeanInitializationException
start
public void start()
Start all registered beans that implementLifecycleand are not already running. Any bean that implementsSmartLifecyclewill be started within its 'phase', and all phases will be ordered from lowest to highest value. All beans that do not implementSmartLifecyclewill be started in the default phase 0. A bean declared as a dependency of another bean will be started before the dependent bean regardless of the declared phase.- Specified by:
startin interfaceLifecycle- See Also:
SmartLifecycle.isAutoStartup()
stop
public void stop()
Stop all registered beans that implementLifecycleand are currently running. Any bean that implementsSmartLifecyclewill be stopped within its 'phase', and all phases will be ordered from highest to lowest value. All beans that do not implementSmartLifecyclewill be stopped in the default phase 0. A bean declared as dependent on another bean will be stopped before the dependency bean regardless of the declared phase.- Specified by:
stopin interfaceLifecycle- See Also:
SmartLifecycle.stop(Runnable),DisposableBean.destroy()
onRefresh
public void onRefresh()
Description copied from interface:LifecycleProcessorNotification of context refresh, e.g. for auto-starting components.- Specified by:
onRefreshin interfaceLifecycleProcessor
onClose
public void onClose()
Description copied from interface:LifecycleProcessorNotification of context close phase, e.g. for auto-stopping components.- Specified by:
onClosein interfaceLifecycleProcessor
isRunning
public boolean isRunning()
Description copied from interface:LifecycleCheck whether this component is currently running.In the case of a container, this will return
trueonly if all components that apply are currently running.
getLifecycleBeans
protected Map<String,Lifecycle> getLifecycleBeans()
Retrieve all applicable Lifecycle beans: all singletons that have already been created, as well as all SmartLifecycle beans (even if they are marked as lazy-init).- Returns:
- the Map of applicable beans, with bean names as keys and bean instances as values
getPhase
protected int getPhase(Lifecycle bean)
Determine the lifecycle phase of the given bean.The default implementation checks for the
Phasedinterface, using a default of 0 otherwise. Can be overridden to apply other/further policies.- Parameters:
bean- the bean to introspect- Returns:
- the phase (an integer value)
- See Also:
Phased.getPhase(),SmartLifecycle