SpringBean的生命周期
简而言之
简单来说就是:构造器 -> 依赖注入 -> 各种各样的 aware -> 自定义初始化 -> 自定义销毁,InstantiationAwareBeanPostProcessor 穿插在构造器前后,BeanPostProcessor 穿插在自定义初始化前后。
详细顺序
- InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation
- 构造器
- InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation
- InstantiationAwareBeanPostProcessor#postProcessPropertyValues
- 依赖注入
- 各种各样的 aware(如:BeanNameAware、ApplicationContextAware)
- BeanPostProcessor#postProcessBeforeInitialization
- @PostConstruct
- InitializingBean#afterPropertiesSet
- BeanPostProcessor#postProcessAfterInitialization
- @PreDestroy
- DisposableBean#destroy
注意:一个 InstantiationAwareBeanPostProcessor 或 BeanPostProcessor 是对所有 spring bean 都生效的!