spring容器生命周期回调
上一篇文章中我们谈了spring bean生命周期回调,这些都是建立在容器已经启动的前提下,那么如果想参与spring 容器的生命周期回调,我们该怎办?spring提供了一些接口
Lifecycle
接口如下
public interface Lifecycle {
void start();
void stop();
boolean isRunning();
}
任何Spring管理的对象都可以实现此接口。当ApplicationContext接口启动和关闭时,它会调用本容器内所有的Lifecycle实现。
LifecycleProcessor
它继承Lifcycle接口。同时,增加了2个方法,用于处理容器的refreshed和closed事件,接口如下
public interface LifecycleProcessor extends Lifecycle {
void onRefresh();
void onClose();
}
SmartLifecycle
若两个对象有依赖关系(这种依赖不一定是一个bean引用另一个bean),希望某些bean先初始化,完成一些工作后,再初始化另一些bean。在此场景中,可以使用SmartLifecycle接口,