作者: 一字马胡
转载标志 【2017-11-03】
更新日志
日期 | 更新内容 | 备注 |
---|---|---|
2017-11-03 | 添加转载标志 | 持续更新 |
Spring Bean 生命周期概述
关于Spring生命周期的资料非常多,内容大同小异,本文就当做是学习笔记吧。所谓生命周期,就是从出生到死亡的过程,我想要知道的是在Spring容器中,一个bean是怎么从出生走向死亡的,这里面的过程非常丰富,也就意味着我们可以更加灵活的使用Spring容器来为我们工作。所以这也说明学习和掌握Spring Bean的生命周期是异常重要的。
下面的图片形象的展示了Spring Bean生命周期中需要走的一些路径:
Spring Bean 生命周期详解
上面的流程图已经展示了Spring bean生命周期的详细细节,我们知道了这些加载、初始化、设置等一系列流程之后,就可以在合适的环节加上我们想要的动作,比如,我们可以使用BeanFactoryPostProcessor的postProcessBeanFactory方法来修改bean的属性,例如,我们有一个bean的一个属性A在spring配置文件中找不到,但是我们可以在BeanFactoryPostProcessor的postProcessBeanFactory方法里面使用方法的参数beanFactory来注册一个A。我们还可以使用BeanPostProcessor来修改我们的bean的属性值,比如一个bean的一个属性A,我们可以在BeanPostProcessor的postProcessBeforeInitialization方法和postProcessAfterInitialization方法来修改其值,这些方法需要配合其他的与Spring bean生命周期相关的类来做。
可以将Spring bean的生命周期根据不同特点划分为下面的几类:
- Bean自身的方法
包括我们在配置bean时候设置的init-method方法和destroy-method方法。
- Spring Bean级别的生命周期方法
包括BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean这些接口的方法。
- Spring容器级别生命周期方法
包括InstantiationAwareBeanPostProcessor、BeanPostProcessor、BeanFactoryPostProcessor的实现类的方法