spring bean生命周期

Posted 不下山的小太阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring bean生命周期相关的知识,希望对你有一定的参考价值。

image
spring生命周期里调用的方法很多,很难记忆。根据spring方法的命名和相关注释,可以找出生命周期中几个关键节点:

  1. 实例化Instantiation,调用构造方法
  2. 属性填充set properties,调用set方法
  3. 初始化Initialization,执行一些额外的特定需要的初始化
    1. 用户自定义init-method
    2. InitializingBeanafterPropertiesSet

生命周期里的这些方法都是在这三个方法前后调用。

先看BeanPostProcessor接口的两个方法,postProcessBeforeInitializationpostProcessAfterInitialization分别在初始化前后调用

再看InitializationAwareBeanPostProcessorpostProcessBeforeInstantiationpostProcessAfterInstantiation方法,分别在实例化前后调用,另外它还继承了BeanPostProcessor接口,所以如果也override它的两个方法,那么也会像上面一样执行,他还有一个方法postProcessProperties,这个方法在属性填充前执行

然后是各种以Aware结尾接口的方法,比如BeanNameAwaresetBeanName,BeanFactoryAwaresetBeanFactory,ApplicationContextAwaresetApplicationContext,BeanClassLoaderAwaresetBeanClassLoader等,这些方法都是在完成属性填充后,初始化前执行

还剩两个方法,一个是BeanFactoryPostProcessorpostProcessBeanFactory,和自定义的destroy方法,前者在载入beanDefinition后实例化前调用,后者在实例销毁时调用

以上是关于spring bean生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Spring事务,Bean生命周期

Spring应用上下文中Bean的生命周期

Spring之bean的生命周期

Spring课程 Spring入门篇 3-2 Spring bean装配(上)之bean的生命周期

Spring Bean的生命周期

Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析