Spring生命周期

1.容器启动,实例化所有实现了BeanFactoryPostProcessor接口的类.它会在任何普通Bean实例化之前加载.
2. 实例化剩下的Bean, 对这些Bean进行依赖注入.
3. 如果Bean有实现BeanNameAware的接口那么对这些Bean进行调用
4. 如果Bean有实现BeanFactoryAware接口的那么对这些Bean进行调用
5. 如果Bean有实现ApplicationContextAware接口的那么对这些Bean进行调用
6. 如果配置有实现BeanPostProcessor的Bean, 那么调用它的postProcessBeforeInitialization 方法
7. 如果Bean有实现InitializingBean接口那么对这些Bean进行调用
8. 如果Bean配置有init属性,那么调用它属性中的设置方法
9. 如果配置有实现BeanPostProcessor的Bean, 那么调用它的postProcessAfterInitialization方法
10. Bean正常使用
11. 调用DiposableBean接口的destroy方法
12. 调用Bean定义的destroy方法

如果从大体上区分值分只为四个阶段

1.       BeanFactoyPostProcessor实例化

2.       Bean实例化,然后通过某些BeanFactoyPostProcessor来进行依赖注入

3.       BeanPostProcessor的调用.Spring内置的BeanPostProcessor负责调用Bean实现的接口: BeanNameAware, BeanFactoryAware, ApplicationContextAware等等,等这些内置的BeanPostProcessor调用完后才会调用自己配置的BeanPostProcessor

4.       Bean销毁阶段

猜你喜欢

转载自qtlkw.iteye.com/blog/2327651