Spring Boot 基础完结, Spring Boot 高级部分笔记比这个还糙就不丢人了-.-
fighting!fighting!
Spring Boot 原理
1. 几个重要的回调机制
ApplicationContextInitlalizer
SpringApplicationRunListener
ApplicationRunner
CommandLineRunner
2. 启动流程
2.1 创建SpringApplication对象
initialize(sources)
private void initialize(Object[] sources) {
//保存主配置类
if (sources != null && sources.length > 0) {
this.sources.addAll(Arrays.asList(sources));
}
//判断当前是否一个web
this.webEnvironment = this.deduceWebEnvironment();
this.setInitializers(this.getSpringFactoriesInstances(ApplicationContextInitializer.class));
this.setListeners(this.getSpringFactoriesInstances(ApplicationListener.class));
this.mainApplicationClass = this.deduceMainApplicationClass();
}
2.2 运行run()方法
2.3 事件监听机制
配置在META-INF/spring.factories
ApplicationContextInitlalizer
SpringApplicationRunListener
只需要放在ioc容器中
ApplicationRunner
CommandLineRunner
3. 自定义staters
starters:
- 这个场景需要使用的依赖是什么?
- 如何自动配置
@Configuration //指定这个类是一个配置类
@ConditionalOnxxx //在指定条件成立的情况下自动配置类生效
@AutoConfigureAfter //指定自动配置类的顺序
@Bean //给容器中添加组件
@ConfigurationProperties结合相关xxxproperties类来绑定相关的配置
@EnableConfigurationProperties //让xxxProperties生效加入到容器中
自动配置类能加载
将需要启动就加载的自动配置类,配置在META-INF/spring.factories
....