如果使用BeanFactory来生成、管理Bean, 一个Bean从建立到销毁,会历经几个执行阶段。
我个人理解一般的bean的生命周期主要包括:建立,初始化,使用阶段,销毁四个核心阶段。
1、@Bean的建立
由BeanFactory读取Bean定义文件,并生成各个Bean实例。
2、初始化@属性注入
执行相关的Bean属性依赖注入
@BeanNameAware的setBeanName()
org.springframework.beans.factory.BeanNameAware
@BeanFactoryAware的setBeanFactory()
org.springFramework.beans.factory.BeanFactoryAware
@BeanPostProcessors的processBeforeInitialization()
org.springFramework.beans.factory.config.BeanPostProcessors
@InitializiongBean的afterPropertiesSet()
org.springframework.beans.factory.InitializingBean
@Bean定义文件中定义init-method
use “init-methd” to set method name e.g:
<bean id="helloBean" class="org.bearfly.bean.HelloBean" init-method="initBean">
当代码运行到这个阶段的时候,就是执行initBean方法。
@BeanPostProcessors的processaAfterInitialization()
如果有任何的BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessor实例的processaAfterInitialization()方法。
4、销毁 @DisposableBean的destroy()
容器关闭 org.springframework.beans.factory.DisposableBean
@Bean定义文件中定义destroy-method
<bean id="helloBean" class="org.bearfly.bean.HelloBean" destroy-method="destroyBean">