分类: Java
2011-07-06 19:47:59
Spring 里面涉及到一个概念叫做生命周期回调函数,意思是在SPring生命周期开始和结束的时候回调的函数。
其中生命周期开始的回调函数会在被设置的Bean读取所有依赖的Bean后才回调。销毁回调函数会在Bean销毁之前回调
Spring中可以有3中方法指定回调函数。
1,在Spring的配置文件中对Bean进行设置
例如对name为exampleInitBean的Bean的设置器生命周期开始的回到函数为init
<beanid="exampleInitBean"class="examples.ExampleBean"init-method="init"/>
设置Bean生命周期结束时候的回调函数
<beanid="exampleInitBean"class="examples.ExampleBean"destroy-method="cleanup"/>
2.不采用spring 的xml配置文件,即不设置bean的init-mothod和destroy-method属性。
则在bean的实现类(非接口)上分别实现InitializingBean 和 DisposableBean 接口
初始化时的回调函数:
<beanid="exampleInitBean"class="examples.ExampleBean" />
|
销毁时的回调函数:
|
3.采用注解的方式。分别采用 @PostConstruct
和 @PreDestroy
标签
在xml配置中可以配置一个全局的回调方法,只要在其的父标签
假如一个bean采用了多个初始化回调函数或者销毁前回调函数的设置的时候,其实在spring有这样的一个执行次序的机制。次序如下所示:
初始化回调函数:
1.设置@PostConstruct标签
2.类实现IntializationBean接口
3.在xml配置文件中配置了bean的init-method属性
销毁前回调函数的执行次序:
1.设置了@PreDestroy标签
2.类实现了DisposibleBean接口
3.在xml配置文件中配置了bean的destroy-method属性