Spring Boot 自动包规则原理
https://www.bilibili.com/video/BV19K4y1L7MT/?p=13
引导加载自动配置类
查看 @SpringBootApplication 注解源码
……
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
再查看 @SpringBootConfiguration 注解源码
@Configuration
public @interface SpringBootConfiguration {
@Configuration 代表当前是一个配置类
@ComponentScan 指定扫描哪些类包,Spring 注解;
@EnableAutoConfiguration
……
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
……
@AutoConfigurationPackage
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AutoConfigurationPackages.Registrar.class) //给容器中导入一个组件
public @interface AutoConfigurationPackage {