springboot的组成
- spring-core
- ioc,aop
- web mvc
- dao
- orm
@SpringBootApplication注解
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
整体过程
- 1 初始化 SpringApplication
- 从spring.factories文件中找出key为ApplicationContextInitializer实例化
- setInitializer设置到SpringApplication的initializers属性中
- 设置监听器
- 2 运行SpringApplication
- 启动模块:流程监控,配置环境加载,ApplicationContext上下文
- refreshContext方法刷新应用上下配置模块加载
- META-INF/spring.factories文件配置
- 2.1 运行 SpringApplicationRunListeners
- 2.2 ConfigurableEnviroment配置环境模块和监听
- 创建配置环境
- 加载属性配置文件
- 配置监听
- 2.3 ConfigurableApplicationContext 配置应用上下文
- 配置应用上下文信息
- 配置基本信息
springboot自动装配机制
- @EnableAutoConfiguration
- @CoditionalOnClass
- @Conditional
- ConditionalOnBean
- ConditionalOnClass
- ConditionalOnExpression
- @AutoConfigureAfter @AutoConfigureBefore
整体流程
- @EnableAutoConfiguration
- ApplicationListener
- SpringApplicationRunListener
- ApplicationContextInitializer
- CommandLineRunner
扩展功能的点
- SpringApplication启动
- 初始化监听器,环境变量准备
- 获取SpringApplicationRunnerListener监听器
- listenrs添加
- SpringApplication.addListeners(...)
- SpringApplication.setListeners(...)
- META-INF/spring.factories文件中添加
- listenrs添加
- 准备上下文Listener,触发refresh容器
- 获取执行器Runner,扩展用户接口功能
所有的stater是在listener里面的
网友评论