用户工具


如果没有依赖关系,按照xml中bean的配置顺序执行

  1. bean1-construct
    1. bean2-construct
      1. bean3-construct 构造函数
      2. bean3-BeforeInitialization 实现BeanPostProcessor
      3. bean3-PostConstruct 注解PostConstruct
      4. bean3-afterPropertiesSet 实现InitializingBean
      5. bean3-initMethod 配置xml中init-method
      6. bean3-AfterInitialization 实现BeanPostProcessor
    2. bean2-BeforeInitialization
    3. bean2-PostConstruct
    4. bean2-afterPropertiesSet
    5. bean2-initMethod
    6. bean2-AfterInitialization
  2. bean1-BeforeInitialization
  3. bean1-PostConstruct
  4. bean1-afterPropertiesSet
  5. bean1-initMethod
  6. bean1-AfterInitialization
  7. applicationEvent
  8. end main

其他配置

  • 重载BeanFactoryPostProcessor: 也会一个bean,但是会先于所有bean执行,这个bean中能修改其他bean的定义
  • 重载DefaultListableBeanFactory: bean工厂的实现,可以在全局对bean的各个生命周期进行控制
  • 重载ClassPathXmlApplicationContext: spring环境,一般用来注入自己重载的DefaultListableBeanFactory