初稿 2017-01-23
在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。
- Spring bean factory 负责管理在spring容器中被创建的bean的生命周期。Bean的生命周期由两组回调(call back)方法组成。
- 初始化之后调用的回调方法。
- 销毁之前调用的回调方法
- Spring框架提供了以下四种方式来管理bean的生命周期事件:
- InitializingBean和DisposableBean回调接口
- 针对特殊行为的其他Aware接口
- Bean配置文件中的init-method和destory-method方法
- @PostConstruct和@PreDestroy注解方式
注:使用自定义的customInit()和 customDestroy()方法管理bean生命周期的代码样例如下(定义bean初始化和销毁时调用自定义的方法):
# 使用xml的方式配置
<beans>
<bean id="demoBean" class="org.beans.DemoBean"
init-method="customInit" destroy-method="customDestroy"></bean>
</beans>
# 使用注解的方式
@PostConstruct
public void customInit()
{
System.out.println("Method customInit() invoked...");
}
@PreDestroy
public void customDestroy()
{
System.out.println("Method customDestroy() invoked...");
}