如果没有依赖关系,按照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 {{:pasted:20200517-122723.png}}