Spring Bean 生命周期

阅读更多

Bean生命周期涉及到的方法:
1、自身的方法:构造函数实例化函数,调用seter设置bean的属性,通过bean的init-method和destory-method
2、Bean级生命周期接口方法:
BeanNameAware,BeanFactoryAware,InitializingBean,DisposableBean
3、容器级生命周期接口方法:
InstantiationAwareBeanPostProcessor,BeanPostProcessor

将以上这些接口以及容器串联起来后就是下面的顺序,也就是bean的整个生命周期:

 

1.调用InstantiationAwareBeanPostProcessor的postProcessorBeforeInstantiation()方法

看到这个接口的名字就知道是在类实例化之前做预处理的动作。

 

2.预处理结束后,开始通过构造函数实例化这个bean。

 

3.实例化结束后,还可以调用InstatiationAwareBeanPostProcessor的PostProcessorAfterInstantiation().

 

4.继续调用InstatiationAwareBeanPostProcessor的 postProcessPropertyValus()方法。

  在设置bean的属性值之前,对属性做预处理。

 

5.set设置bean的属性

 

6.调用BeanNameAware的setBeanName,将该bean的名称设置到bean中

 

7.调用BeanFactoryAware的setBeanFactory,将beanfactory容器设置到bean中

 

8.调用BeanPostProcessor的PostProcessBeforeInitialization.这是一个后处理器对bean进加工处理,

   可以对bean进行特殊的处理,甚至改变bean的行为。

 

9.调用InitializingBean的afterPropertiesSet

 

10.调用init-method属性配置的方法

 

11.调用BeanPostProcessor的postProcessAfterInitialization

 

12.调用DisposableBean的afterPropertiesSet释放bean的资源

 

13 调用通过destory-method属性配置的销毁方法

 

整个流程看起来有些庞大 ,而且在开发中也很少能够应用到。

某些方法还会和spring的框架绑定在一起了。

 

以上整个bean的生命周期来自于精通spring2.x企业应用 开发详解,这么书很好 ,作者很强大,

看了之后收益匪浅。

 

你可能感兴趣的:(Spring Bean 生命周期)