zoukankan      html  css  js  c++  java
  • springboot的注解

    @springbootapplication注解标注在类中,这个类作为spring boot的主配置类

    运行spring boot需要运行这个类的main方法。

    @SpringBootApplication
    public class FirstApp {
        public static void main(String args[]) {
            //spring应用启动起来
            SpringApplication.run(FirstApp.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 {
    

      @springBootConfiguration:这个注解spring boot配置

         点击@spring boot configuration ,会跳转到这个类    

     @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Configuration
    public @interface SpringBootConfiguration {
    
    }
    

     @configuration: 配置类中标注这个注解

     用配置类代替-------配置文件;继续点击@configuration,会跳转到

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Component
    public @interface Configuration {
    ...
    }

    配置类也是容器的一个组件,@Component

    @EnableAutoConfiguration:开启自动配置功能
    点击这个配置,看到跳转到另一个类中,找到这些配置
    以前需要配置的,spring boot帮助我们配置,开启自动配置功能。需要配置@EnableAutoConfiguration
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @AutoConfigurationPackage
    @Import(AutoConfigurationImportSelector.class)
    public @interface EnableAutoConfiguration {
    }
    

     看到@AutoConfigurationPackage:自动配置包,点击这个注解会看到

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @Import(AutoConfigurationPackages.Registrar.class)
    public @interface AutoConfigurationPackage {
    
    }
    这个就是spring的底层注解
    按住ctrl点击Registrar跳转到

     metadata是注解的原信息。

    @Import(AutoConfigurationPackages.Registrar.class)
    将主配置类,也就是@springbootapplication配置的类的所在包及下所有自包所有组件扫描到spring容器中。


      @Import(AutoConfigurationImportSelector.class) 导入包选择器。

    将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中

    会给容器中导入非常多的自动配置类(xxxAutoConfiguration),就是给容器中导入这个场景所需要的所有组件,并配置好这些组件;

    有了自动配置类,免去了手动配置和注入组件;

    J2EE整体整和解决方案和自动配置都在spring-boot-autoconfiguration-2.0.1.release.jar

  • 相关阅读:
    ISO9126 软件质量模型
    java 15.String
    java 14. ArrayList常用方法
    java 13. 方法重载构造方法块this用法
    linux ssh连接心跳检查断开连接
    关于递归,我有几句话想说
    pytest 报错 ImportError: cannot import name 'main'
    递归回溯剪枝之斐波那契数列
    appium-doctor诊断信息不完整
    数据驱动,关键字驱动,混合驱动简单模型
  • 原文地址:https://www.cnblogs.com/hamish26/p/12157761.html
Copyright © 2011-2022 走看看