spring结合生命周期机制
1、从Spring 2.5开始,您有三个控制bean生命周期行为的选项:
2、如果为bean配置了多个生命周期机制,敛财醣沁并且每个机制都配置了不同的方法名称,则每个配置的方法都按照此注释后列出的顺序执行。但是,如果 init() 为多个这些生命周期机制配置了枷讹般身相同的方法名称(例如, 对于初始化方法),则该方法将执行一次。
3、为同一个bean配置的多个生命周期机制具有不同的初始化方法,如下所示:
4、Destroy方法以相同的顺序调用:
5、Lifecycle 接口为任何具有自己的生命周期要求的对象(例如启动和停止某些后台进程)定义了基本方法:
6、任何Spring管理的对拇峨镅贪象都可以实现该 Lifecycle 接口。然后,当它 ApplicationContext 自己接收到启动和停止信号时(例如,对于运行时的停廛摄斟腓止/重启场景),它将这些调用级联到 Lifecycle 该上下文中定义的所有实现。它通过委托给a来实现 LifecycleProcessor ,如下面的清单所示:
7、请注意, LifecycleProcessor 它本身是 Lifecycle 接口的扩展。它还添加了另外两种方法来响应刷新和关闭的上下文。
8、启动和关闭调用的顺序非常重要。如果任何两个对象之间存在“依赖”关系,则依赖方在其依赖之后开始,并秤郓鹜媲且在其依赖之前停止。但是,有时,直接依赖性是未知的。您可能只知道某种类型的对象应该在另一种类型的对象之前开始。在这些情况下, SmartLifecycle 接口定义了另一个选项,即getPhase() 在其超级接口上定义的方法 Phased 。以下清单显示了 Phased 界面的定义:
9、以下清单显示了 SmartLifecycle 界面的定义:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:45
阅读量:67
阅读量:46
阅读量:91
阅读量:35