spring 中类完整的生命周期

Posted

tags:

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

 

 

 

 

Bean的生命周期的11个步骤:

1.instantiate bean对象实例化
2.populate properties 封装属性
     (第三步和第四步是让自己设计的bean了解spring容器)
3.如果Bean实现BeanNameAware 执行 setBeanName
4.如果Bean实现BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上下文对象 setApplicationContext
     (第五步和第八步实现自 BeanPostProcessor,可以用来增强 Bean)
5.如果存在类实现 BeanPostProcessor(后处理Bean ,执行postProcessBeforeInitialization
6.如果Bean实现InitializingBean 执行 afterPropertiesSet
7.调用<bean init-method="init"> 指定初始化方法 init
8.如果存在类实现 BeanPostProcessor(处理Bean ,执行postProcessAfterInitialization
9.执行业务处理
10.如果Bean实现 DisposableBean 执行 destroy
11.调用<bean destroy-method="customerDestroy"> 指定销毁方法 customerDestroy
CustomerService类的add方法之前进行权限校验?
 ------------------------------具体体现分割线----------------------------------------------------------------
1,bean instantiate 对象实例化
 
技术分享

 技术分享

 

 
2,populate properties 封装属性
 
     技术分享
技术分享

 

 

3,如果 Bean 实现了 BeanNameAware, 则执行 setBeanName;
技术分享

 

技术分享

 

4,如果 Bean 实现 BeanFactoryAware 或 ApplicationContextAware, 则执行设置工厂 setBeanFactory 或 设置上下文对象setApplicationContext
     技术分享

 

 技术分享

 

5,如果存在类实现了 BeanPostProcessor, 则执行 postProcessorBeforeInitialization
 
  技术分享

技术分享

 

6,如果 Bean 实现了 InitializingBean 则执行 afterPropertiesSet
 
技术分享
7,执行配置文件中 Bean 指定的初始化方法 <init-method="methodName">
 技术分享

技术分享

8,如果存在类实现了 BeanPostProcessor, 则执行 postProcessorAfterInitialization   技术分享

技术分享

9,用户自定义业务方法
 
技术分享

技术分享

10,如果 Bean 实现了 DisposableBean,调用 destory 方法.
 
技术分享
 技术分享

 

 
11,调用配置文件中用户自定义的摧毁方法
 
技术分享

技术分享

 

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

一张图搞懂Spring bean的完整生命周期

Spring Bean 生命周期

Spring生命周期以及Aop的执行时机总结

day38 09-Spring类的完整生命周期及后处理Bean

深究Spring中Bean的生命周期

Spring中Bean的生命周期