Springboot注解与分析之:@SpringBootApplication

Springboot注解与分析之:@SpringBootApplication

@SpringBootApplication(
exclude = {
    
    JacksonAutoConfiguration.class, 
WebMvcMetricsAutoConfiguration.class},
scanBasePackages = {
    
    "com.optics.data"}
)
public class Application {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(Application.class, args);
    }
}

按住Ctrl键并点击@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}
)}
)
public @interface SpringBootApplication {
    
    
    @AliasFor(
        annotation = EnableAutoConfiguration.class
    )
    Class<?>[] exclude() default {
    
    };

    @AliasFor(
        annotation = EnableAutoConfiguration.class
    )
    String[] excludeName() default {
    
    };

    @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackages"
    )
    String[] scanBasePackages() default {
    
    };

    @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackageClasses"
    )
    Class<?>[] scanBasePackageClasses() default {
    
    };
}

由注解源码可以看出,@SpringBootApplication注解是一个复合注解,其中前面四个注解是Java元素,含义分别如下:

  • @Target({ElementType.TYPE}):类、接口(包括注解类型)和enum声明
  • @Retention(RetentionPolicy.RUNTIME):运行时注解
  • @Documented:将注解添加到Java doc中
  • @Inherited:允许继承

后面三个重要注解含义如下所示:

  • @SpringBootConfiguration:Spring Boot配置注解
  • @EnableAutoConfiguration:启用自动配置注解
  • @ComponentScan:组件自动扫描注解

可以将@SpringBootApplication注解理解为:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan这三个注解的组合注解。

@SpringBootApplication注解含义:如果Application标注在某个类上说明这个类是Spring Boot的主配置类,Spring Boot会运行这个类的main方法来启动Spring Boot应用。

猜你喜欢

转载自blog.csdn.net/zhengzaifeidelushang/article/details/121592649