@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@SpringBootConfiguration:springboot配置类;
标注在某个类上,表示这是一个springboot的配置类。
@EnableAutoConfiguration:开启自动配置功能
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
@AutoConfigurationPackage:自动配置包;
@Import({Registrar.class}) :spring底层注解@Import,给容器中导入一个组件,导入的组件由Registrar.class
将主配置类(@SpringBootApplication标注的类)的所在包及下面子包里面的所有组件扫描到spring容器。