码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBean的生命周期

时间:2015-05-30 09:27:50      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

    传统的Java应用,Bean的生命周期很简单。使用Java关键字new 进行Bean的实例化,然后Bean就可以使用了。一旦该Bean不再被使用,则由Java自动进行垃圾回收。

相比之下,Spring容器中的Bean的生命周期就显得细腻的多了,如图所示:

        技术分享

1、Spring对Bean进行实例化。

2、Spring将值和Bean的引用注入进Bean对应的属性中。

3、如果Bean实现了BeanNameAware接口,Spring将Bean的ID传递给setBeanName()接口方法。

4、如果Bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()接口方法,将BeanFactory容器实例传入。

5、如果Bean实现了ApplcationContextAware接口,Spring将调用setApplicationContext()接口方法,将应用上下文的引用传入。

6、如果Bean实现了BeanPostProcessor接口,Spring将调用postProcessBeforeInittializtion()接口方法。

7、如果Bean实现了InitializingBean接口,Spring将调用它们的afterPropertiesSet()接口方法,类似的,如果Bean使用init-method声明了初始化方法,  该方法也会被调用。

8、如果Bean实现了BeanPostProcessor接口,Spring将调用它的postProcessAfterInitialization()方法。

9、此时此刻,Bean已经准备就绪,可以被应用程序使用,它们将一直驻留在应用上下文中,直到应用上下文被销毁。

10、如果Bean实现了DisposableBean接口,Spring将调用它的destory()接口方法。同样,Bean使用destory-method生命了销毁方法,该方法也会被调用。

总结:

Bean的生命周期从Spring容器开始实例化Bean到销毁可以从以下三点来理解:

1、bean自身的方法:包括构造方法、set方法、init-method指定的方法、destroy-method指定的方法

2、Bean级生命周期接口方法:如BeanNameAwareBeanFactoryAware等这些接口方法由bean类实现。

3、容器级生命周期接口方法:BeanPostProcessor等,一般称为后处理器。他们一般不由bean本身实现,独立存在,注册到spring容器中。Spring通过接口反射预先知道,当spring容器创建任何bean时,这些后处理器都会发生作用。所以他们是全局的,用户可以通过编码对只感兴趣的bean进行处理。



SpringBean的生命周期

标签:

原文地址:http://blog.csdn.net/u013799929/article/details/46241657

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!