博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot自动配置总结
阅读量:5945 次
发布时间:2019-06-19

本文共 2034 字,大约阅读时间需要 6 分钟。

Spring Boot项目启动的时候加载主配置类,并开启了自动配置功能。(Spring Boot的自动配置功能是Spring Boot的一大重要且突出的特性)

那么我们需要了解下它:

  如何加载主配置类?

    通过@SpringBootApplication的注解来找到并加载主配置类。

  如何开启自动配置功能?

    点进@SpringBootApplication的源码后可以发现这样一段代码,说明@SpringBootApplication注解由多个注解组成。

      

    其中,自动配置功能主要就是依靠@EnableAutoConfiguration注解实现的

    点进@EnableAutoConfiguration注解后可以发现,该注解也是一个组合注解,下面一步步解析各个注解

      

      1.@Target

        java.lang.annotation.Target用于设定注解使用范围

        java.lang.annotation.ElementType

        Target通过ElementType来指定注解可使用范围(上面使用的是ElementType.Type),参考如下图:

        

      2.@Retention(RetentionPolicy.RUNTIME)

        Retention(保留)注解说明,这种类型的注解会被保留到哪个阶段(注解的生命周期)

          RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略 。

          RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略 。(这是默认的生命周期)

          RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用。

      3@Documented

        Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中。(javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入javadoc +文件名.java。)

      4.@Inherited

        @Inherited注解标记其他的注解用于指明标记的注解是可以被自动继承的。(注意:此注解只对注解标记的超类有效,对接口是无效的。)

      5.@AutoConfigurationPackage

        自动配置包的注解,将主配置类所在的包及下面所有的子包里面的组件扫描到Spring容器中

      6.@Import({AutoConfigurationImportSelector.class})

        使用AutoConfigurationImportSelector选择器给容器中导入一些组件,全部导入的组件可以在jar包中找到(在spring.factories中)

        

        每一个自动配置类都会进行自动配置功能。

        例如:AOP的自动配置类

        

        

         其中的注解如下:

          @Configuration: 表明这是一个配置类,该注解也可以给容器中添加组件

          @ConditionalOnClass:判断当前项目中是否有这个类

          @ConditionalOnProperty: 判断配置文件是否存在某个配置(如果不存在,判断也是成立的)

      因此,spring.factories中的配置类会根据当前各种不同的条件,判断该配置类是否生效。

    最后,当配置文件生效的时候,Spring Boot就完成了自动配置功能。

    附: 在配置文件中输入debug=true,可以设置项目以debug的模式启动,从而可以看到项目用到了哪些自动配置类

转载于:https://www.cnblogs.com/ywb-articles/p/10623646.html

你可能感兴趣的文章
Node.js umei图片批量下载Node.js爬虫1.00
查看>>
客户端拖动控件封装(让拖动变得更简单)
查看>>
linux下IPTABLES配置详解
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)
查看>>
iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
查看>>
php get_magic_quotes_gpc()函数用法介绍
查看>>
SQL to Java code for Elasticsearch
查看>>
Java RMI之HelloWorld程序以及相关的安全管理器的知识
查看>>
FlatBuffers
查看>>
美团HD(5)-选择城市
查看>>
$.when()方法监控ajax请求获取到的数据与普通ajax请求回调获取到的数据的不同
查看>>
pthread_mutex_t
查看>>
LR11.0 下载及破解
查看>>
Java基础-绘图技术
查看>>
又转出61.8万个ETH,EOS不疯狂不成魔
查看>>
程序员面试IT公司的33个小贴士
查看>>
多款C系列手机亮相三星中国论坛,更加注重中国用户体验
查看>>
云南中医学院更名为云南中医药大学
查看>>
人社部:突出就业优先政策主线 全力确保就业局势稳定
查看>>
关键时刻还是要看阿里,达摩院发布自主研发AI芯片
查看>>