1、springBoot启动流程
-
参考文章:
-
每个springBoot工程都有一个主入口,也就是我们的main方法,该方法所在的类需要使用注解@SpringBootApplication,并调用SpringApplication的run方法 -
@SpringBootApplication是一个组合注解,里面有三个主要的注解构成:@CompomentScan, @SpringBootConfiguration和EnableAutoConfiguration
- @CompomentScan:自动扫描并加载符合条件的组件(可以设置过滤条件和扫描路径,扫描路径默认为使用@CompomentScan的类所在的package以及子目录),并将组件加载到IOC容器中
- @SpringBootConfiguration:也是一个组合注解,里面核心的就一个, @Configuration,标识该类是一个配置类,如果该类内部有@Bean注解的方法,则将方法返回的bean默认以方法名为id注册到spring的容器中
- @EnableAutoConfiguration:内部主要是@Import(AutoConfigurationImportSelector.class), AutoConfigurationImportSelector实现了importSeletor接口,实现了selectImports方法,将工程需要依赖的组件加载到IOC容器中
-
SpringApplication的run方法:
- 获取并启动监听器:找到并启动依赖jar包里面的SpringApplicationRunListener相关组件
- 构造应用上下文环境:创建并配置当前应用要使用的Environment
- 初始化应用上下文
- 刷新应用上下文前的准备阶段
- 刷新应用上下文
- 刷新应用上下文后的扩展接口
|