• SpringBoot之注解


    1、@SpringBootApplication

        @SpringBootApplication标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就该运行这个类的main方法启动SpringBoot应用

        

    @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 {
      @SpringBootConfiguration:SpringBoot的配置类,标注在类上,表示是SpringBoot的配置类【这个是SpringBoot规定的注解】
        内部:
    @Configuration配置类上来标注的注解【这个是Spring规定的注解】
            配置类也是容器中的一个组件:@Component

    2、@EnableAutoConfiguration

       开启自动配置功能,以前要配置的比如扫描什么的,现在都不需要手写了,SpringBoot自动装配,@EnableAutoConfiguration告诉SpeingBoot开启自动配置;这样才能生效

    内部也是组合注解:

    @AutoConfigurationPackage
    @Import({EnableAutoConfigurationImportSelector.class})
    public @interface EnableAutoConfiguration {
    @AutoConfigurationPackage:自动配置包
        
    @Import({Registrar.class})
          Spring的底层注解@import,给容器导入一个组件;导入的组件
    Registrar.class将主配置类(就是@SpringBootApplication标注的类)所在的包以及下面所有子
    包里面的所有组件都扫描到Spring容器中
    @Import({EnableAutoConfigurationImportSelector.class})
      导入那些组件的选择器,将需要的组件以全类名(
    String[] selectImports(AnnotationMetadata annotationMetadata){}
    )的方式返回。这些组件就会添加到容器中;会给容器中导入非常多的配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;
    有了自动配置类,就免去了手动编写配置注入功能组件的工作;
     
     
     
  • 相关阅读:
    UPC2018组队训练赛第十二场
    ACM-ICPC 2018南京赛区网络预选赛
    UPC2018组队训练赛第十一场
    UPC2018组队训练赛第十场
    UPC2018组队训练赛第九场
    linux 用简单密码
    设置分辨率
    packstack
    rbenv
    elasticsearch
  • 原文地址:https://www.cnblogs.com/Timeouting-Study/p/13212395.html
Copyright © 2020-2023  润新知