SpringBean的生命周期

简而言之

简单来说就是:构造器 -> 依赖注入 -> 各种各样的 aware -> 自定义初始化 -> 自定义销毁,InstantiationAwareBeanPostProcessor 穿插在构造器前后,BeanPostProcessor 穿插在自定义初始化前后。

详细顺序

  • InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation
  • 构造器
  • InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation
  • InstantiationAwareBeanPostProcessor#postProcessPropertyValues
  • 依赖注入
  • 各种各样的 aware(如:BeanNameAware、ApplicationContextAware)
  • BeanPostProcessor#postProcessBeforeInitialization
  • @PostConstruct
  • InitializingBean#afterPropertiesSet
  • BeanPostProcessor#postProcessAfterInitialization
  • @PreDestroy
  • DisposableBean#destroy

注意:一个 InstantiationAwareBeanPostProcessorBeanPostProcessor 是对所有 spring bean 都生效的!


福利