spring中bean的生命周期

        在传统的Java 应用中, bean 的生命周期很简单。使用 Java 关键字 new
bean 实例化,然后该 bean 就可以使用了。一旦该 bean 不再被使用,
则由 Java 自动进行垃圾回收。
        相比之下,Spring 容器中的 bean 的生命周期就显得相对复杂多了。正
确理解 Spring bean 的生命周期非常重要,因为你或许要利用 Spring
供的扩展点来自定义 bean 的创建过程。下图 展示了 bean 装载到 Spring
应用上下文中的一个典型的生命周期过程。

 

正如你所见,在 bean 准备就绪之前, bean 工厂执行了若干启动步骤。
我们对上图 进行详细描述:
1 Spring bean 进行实例化;
2 Spring 将值和 bean 的引用注入到 bean 对应的属性中;
3 .如果 bean 实现了 BeanNameAware 接口, Spring bean ID 传递给
setBean-Name() 方法;
4 .如果 bean 实现了 BeanFactoryAware 接口, Spring 将调
setBeanFactory() 方法,将 BeanFactory 容器实例传入;
5 .如果 bean 实现了 ApplicationContextAware 接口, Spring 将调
setApplicationContext() 方法,将 bean 所在的应用上下文的
引用传入进来;
6 .如果 bean 实现了 BeanPostProcessor 接口, Spring 将调用它们
post-ProcessBeforeInitialization() 方法;
7 .如果 bean 实现了 InitializingBean 接口, Spring 将调用它们的
after-PropertiesSet() 方法。类似地,如果 bean 使用 init-
method 声明了初始化方法,该方法也会被调用;
8 .如果 bean 实现了 BeanPostProcessor 接口, Spring 将调用它们
post-ProcessAfterInitialization() 方法;
9 .此时, bean 已经准备就绪,可以被应用程序使用了,它们将一直
驻留在应用上下文中,直到该应用上下文被销毁;
10 .如果 bean 实现了 DisposableBean 接口, Spring 将调用它的
destroy() 接口方法。同样,如果 bean 使用 destroy-method 声明
了销毁方法,该方法也会被调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值