SpringBoot启动简单分析
1、SpringBootApplication注解组合了三个注解:
SpringBootConfiguration:组合是Configuration注解,只是表示本身是个配置类
EnableAutoConfiguration:会启用AufoConfiguration功能,实际是配置ImportSelecotr,
加载外部配置类,通过spring-autoconfiguration-metadata.properties文件包含所有通用功能的常用配置类(@Configuration)
ComponentScan:注解扫描,默认扫描当前启动类下面的包
1、初始化SpringApplication对象
(1)通过含有Servlet类和WebApplicationContext类来判断是否是web应用
(2)从spring.factories配置文件加载ApplicationContextInitializer类()
(3)从spring.fatories加载事件监听器
(4)加载当前启动类信息
2、springboot的run方法:
(1)从spring.factories文件中读取运行监听器
(2)发布应用初始化开始事件
(3)读取应用的配置信息(配置文件、命令行参数、环境变量等等)
(4)创建spring容器
(5)调用ApplicationContextInitializer类(注入apollo的配置就是在这里面做的,上下文初始化的拓展)
(6)刷新spring容器
(7)刷新完成调用ApplicationRunner、CommandLineRunner类
(8)发布应用初始化完成时间

浙公网安备 33010602011771号