如果没有依赖关系,按照xml中bean的配置顺序执行
bean1-construct
bean2-construct
bean3-construct 构造函数
bean3-BeforeInitialization 实现BeanPostProcessor
bean3-PostConstruct 注解PostConstruct
bean3-afterPropertiesSet 实现InitializingBean
bean3-initMethod 配置xml中init-method
bean3-AfterInitialization 实现BeanPostProcessor
bean2-BeforeInitialization
bean2-PostConstruct
bean2-afterPropertiesSet
bean2-initMethod
bean2-AfterInitialization
bean1-BeforeInitialization
bean1-PostConstruct
bean1-afterPropertiesSet
bean1-initMethod
bean1-AfterInitialization
applicationEvent
end main
其他配置
重载BeanFactoryPostProcessor: 也会一个bean,但是会先于所有bean执行,这个bean中能修改其他bean的定义
重载DefaultListableBeanFactory: bean工厂的实现,可以在全局对bean的各个生命周期进行控制
重载ClassPathXmlApplicationContext: spring环境,一般用来注入自己重载的DefaultListableBeanFactory