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销毁阶段
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销毁阶段
3301

被折叠的 条评论
为什么被折叠?



