Spring中Bean的生命周期

从代码层次上看来主要有一下加载方法及顺序过程:

 

创建过程

之前需要先通过读取xml或者通过注解扫描,加载bean到BeanDefinition中:

1.实例化bean

 

2.设置属性值

 

3.调用BeanNameAware的setBeanName方法

 

4.调用BeanClassLoaderAware的setBeanClassLoader方法

 

5.调用BeanFactoryAware的setBeanFactory方法

 

6.调用EnvironmentAware的setEnvironment方法

 

7.调用ApplicationEventPublisherAware的setApplicationEventPublisher方法

 

8.调用ApplicationContextAware的setApplicationContext方法

 

9.调用BeanPostProcessor的预初始化方法postProcessBeforeInitialization

 

10.调用InitializingBean的afterPropertiesSet方法

 

11.调用定制的初始化方法init-method方法

 

12.调用BeanPostProcessor的与后初始化方法postProcessAfterInitialization

 

销毁过程

bean的销毁(只有Singleton类型的bean才会调用,为Prototype类型的bean则由虚拟机自行销毁)
1.调用@PostConstruct注解方法


2.调用DisposableBean实现接口的destory方法


3.destory-method

上一篇:Spring的BeanPostProcessor及部分默认实现


下一篇:Spring扩展点之BeanPostProcessor