refresh()
1.prepareRefresh()
设置当前spring启动时间
设置活跃状态为true
设置关闭状态为false
获取当前环境对象Environment并设置环境对象里面的属性值
设置监听器以及需要发布的一些事件的集合(都是空的)
2.obtainFreshBeanFactory()
创建容器对象:DefualtListableBeanFactory
加载xml配置文件的属性值到当前工厂中,最重要的就是BeanDefinition
3.prepareBeanFactory()
4.postProcessBeanFactory()
5.invokeBeanFactoryPostProcessors()
实例化并执行所有已经注册的BFPP beans
如果给定顺序则按照顺序执行
单例对象在初始化之前一定要被调用
6.registerBeanPostProcessors()
7.initMessageSource()
8.initApplicationEventMulticaster()
9.onRefresh()
10.finishBeanFactoryInitialization()
11.finishRefresh()
完成刷新工作
