SpringBoot自动配置原理入门

3.1引导加载自动配置类

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {}
 

1.@SpringBootConfiguration

@Configuration 代表当前是一个配置类

2.@ComponentScan
指定扫码哪些包,
3.@EnableAutoConfiguration

由三个注解组合而成

AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {}

   1.AutoConfigurationPackage
     自动配置包

@Import({Registrar.class})  // 给容器中导入一个组件
public @interface AutoConfigurationPackage {}

     利用Registrar给容器导入一系列组件

     将指定一个包下的所有组件导入容器,即MainApplication所在包下

  2.@Import({AutoConfigurationImportSelector.class})

 

 3.2  按需开启自动配置项
      虽然127个场景的所有自动配置启动的时候默认全部加载,但按照条件装配规则,最终会按需配置。

 

posted on 2022-09-13 14:35  风中明月  阅读(27)  评论(0编辑  收藏  举报