• 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

  • 相关阅读:
    【从0开始Tornado网站】主页登录和显示的最新文章
    2014阿里巴巴网上笔试题-文章3大标题-公共最长的字符串长度
    取消改变基本数据——应用备忘录模式
    Hibernate进化史-------Hibernate概要
    xcode 快捷键
    Android多画面幻灯片:ViewPager基础上,利用与PagerTabStrip出生缺陷(源代码)
    uva 11991
    创建与删除索引
    HDU1203_I NEED A OFFER!【01背包】
    Java面试宝典2013版(超长版)
  • 原文地址:https://www.cnblogs.com/hamish26/p/12157761.html
Copyright © 2020-2023  润新知