您的位置:首页 > 编程语言 > Java开发

Spring 容器中的Bean 的生命周期

2018-07-19 10:11 330 查看
在传统的java应用中,Bean的生命周期是 当使用 new 关键字进行 实例化对象后,Bean就创建完成,当Bean不再被引用时,JAVA Gc进行可达性分析后,进行垃圾回收Bean销毁。

相比之下Spring 容器中的Bean的生命周期就显的复杂很多,如下图:



Spring 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-ProcessorBeforeInitializtion方法()

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

8:如果Bean实现了BeanPostProcessor接口,Spring将调用它们的Post-ProcessorAfterInitialization()方法

9:此时Bean已经准备就绪,可以被应用程序使用了,它们将一直驻留再应用上下文中,知道被应用上下文销毁。

10:如果Bean实现了DisposableBean接口,Spring将调用它的destroy()接口方法,同样如果Bean使用destroy-method生命了销毁方法,该方法也会被调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring