“Spring Boot 自动包规则原理”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第27行: 第27行:
 
==== @ComponentScan ====
 
==== @ComponentScan ====
  
指定扫描哪些包;
+
包扫描注解,指定扫描哪些包;
 +
 
 +
 
 +
 
  
 
==== @EnableAutoConfiguration ====
 
==== @EnableAutoConfiguration ====

2023年3月1日 (三) 02:38的版本

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

代表当前是一个配置类,使用 @SpringBootApplication 的类也会是 Spring Boot 中的一个配置类



@ComponentScan

包扫描注解,指定扫描哪些包;



@EnableAutoConfiguration

……
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
……
@AutoConfigurationPackage
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AutoConfigurationPackages.Registrar.class) //给容器中导入一个组件
public @interface AutoConfigurationPackage {