spring refresh的流程(AbstractApplicationContext的refresh方法)
12个阶段
1、prepareRefresh,做准备工作
2、obtainFreshBeanFactory,创建或获取beanfactory
3、prepareBeanFactory,准备beanfactory
4、postProcessBeanFactory,子类扩展beanfactory
5、invokeBeanFactoryPostProcessors,后处理器扩展beanfactory
6、registerBeanPostProcessors,准备bean后处理器
7、initMessageSource,为applicationContext提供国际化功能
8、initApplicationEventMulticaster,为applicationContext提供时间发布器
9、onRefresh,留给子类扩展
10、registerListeners,为applicationContext准备监听器
11、finishBeanFactoryInitialization,初始化单例bean(非延迟),执行bean后处理器扩展
12、finishRefresh,准备生命周期管理器,发布contextRefreshed事件