概述
先绘制springboot思维导图,知识点后续补全。下图包含:
- springboot自动配置用到的注解 @SpringBootApplication、@SpringBootConfiguration、@ComponentScan @EnableAutoConfiguration、@AutoConfigrationPackage、@EnableConfigurationProperties
- 外部配置文件导入注解 @PropertySource
- 定时任务用到注解 @EnableScheduling、@Scheduled、@EnableAsync、@Async
- 过滤器 @WebFilter、@ServletComponentScan
- 拦截器
- 监听器
- 校验器 @Validated
- 异常处理 @ControllerAdvice、@ExceptionHandler 。
SpringBoot自动加载原理
一共三个步骤:
- SpringBoot 在启动时会去依赖的starter包中寻找 resources/META-INF/spring.factories 文件,然后根据文件中配置的Jar包去扫描项目所依赖的Jar包,这类似于 Java 的 SPI 机制。注释:SPI的英文名称是Service Provider Interface,是Java 内置的服务发现机制。
- 根据 spring.factories配置加载AutoConfigure类。
- 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context 上下文当中。
我们也可以使用@ImportAutoConfiguration({MyServiceAutoConfiguration.class}) 指定自动配置哪些类。
参考文章:
SpringBoot自动加载原理
Springboot自动加载的原理
SpringBoot集成第三方工具