@SpringBootApplication实际上是一个复合注解,其源码中包含如下注解:
@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) })
其中最重要的是后三个注解:@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan,对前几个的注解仅稍作介绍。
@Target(ElementType.TYPE)
Target注解为元注解,指明被修饰注解的修饰对象,分为TYPE(描述类、接口(包括注解类型) 或enum声明)、FIELD(描述域)、METHOD(描述方法)、PARAMETER(描述方法)、CONSTRUCTOR(描述构造器)、LOCAL_VARIABLE(描述局部变量)、ANNOTATION_TYPE(描述注解&#x