启动流程
- 构造springApplication类 构造函数里会去做
a ApplicationInlitializer 初始化器 对象
b.初始化ApplicationListener 即加载监听器的类 ,也可以自己定制 - run方法
1.Environment配置
2.ApplicationContext容器的创建,及属性的设置 environment,ResourceLoader
4.prepare 检查初始化的属性必须存在,然后给容器设置必要的属性比如environment,ResourceLoader
5.refresh
将建容器中的类通过 BeanDefitionMap 反射出来一个个类(会把自动装配的类设置好)
准备ConfigurableApplicationContext 事件的类型EventType(starterEvent,PrepareEnvionment)来监听处理
可以使用这个来换掉默认的ResourceLoader,默认的是DefaultResourceLoader,可以改成configResLoader
6.刷新ConfigurableApplicationContext
7.容器刷新后动作
SpringApplicationRunListeners发布finish事件