Spring Bean 的生命周期

584 阅读2分钟
原文链接: www.jianshu.com

Spring Bean 生命周期概述

关于Spring生命周期的资料非常多,内容大同小异,本文就当做是学习笔记吧。所谓生命周期,就是从出生到死亡的过程,我想要知道的是在Spring容器中,一个bean是怎么从出生走向死亡的,这里面的过程非常丰富,也就意味着我们可以更加灵活的使用Spring容器来为我们工作。所以这也说明学习和掌握Spring Bean的生命周期是异常重要的。

下面的图片形象的展示了Spring Bean生命周期中需要走的一些路径:

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的实现类的方法