springboot的自动配置原理/步骤

springboot的自动配置原理/步骤1、SpringBoot启动的时候加载主配置类(@SpringBootApplication),开启了自动配置功能@EnableAutoConfiguration。 2、@EnableAutoConfiguration作用:     利用AutoConfigurationImportSelector给容器中导入一些组件;可以查看selectImports()方法的内容; …

大家好,又见面了,我是你们的朋友全栈君。

1、SpringBoot启动的时候加载主配置类(@SpringBootApplication),开启了自动配置功能 @EnableAutoConfiguration。 

2、@EnableAutoConfiguration 作用: 

springboot的自动配置原理/步骤

        利用AutoConfigurationImportSelector给容器中导入一些组件;可以查看selectImports()方法的内容;
        将类路径下 META-INF/spring.factories 里面配置的所有AutoConfiguration的值加入到了容器中;

springboot的自动配置原理/步骤

         每一个这样的 xxxAutoConfiguration类都是容器中的一个组件,都加入到容器中;用他们来做自动配置;

3、每一个自动配置类进行自动配置功能;

4、以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;
       一但这个配置类生效,这个配置类就会给容器中添加各种组件,这些组件的属性是从对应的properties类中获取的,这些类里面的每一个属性又是和配置文件绑定的;

springboot的自动配置原理/步骤

 

      a、@Configuration //表示这是一个配置类,也可以给容器中添加组件
   b、@EnableConfigurationProperties//启动指定类的ConfigurationProperties功能;将配置文件中对应的值和HttpEncodingProperties绑定起来;并把HttpEncodingProperties加入到ioc容器中 。 

         所有在配置文件中能配置的属性都是在xxxxProperties类中封装着;该类中有什么属性,配置文件就可以配置什么;@ConfigurationProperties(prefix = “spring.http.encoding”) //从配置文件中获取指定的值和bean的属性进行绑定。

springboot的自动配置原理/步骤

       c、@ConditionalOnWebApplication //Spring底层@Conditional注解:根据不同的条件,如果满足指定的条件,整个配置类里面的配置就会生效; 判断当前应用是否是web应用,如果是,当前配置类生效
    d、@ConditionalOnClass(CharacterEncodingFilter.class) //判断当前项目有没有CharacterEncodingFilter这个类;CharacterEncodingFilter类是SpringMVC中进行乱码解决的过滤器;
       e、@ConditionalOnProperty(prefix = “spring.http.encoding”, value = “enabled”, matchIfMissing=true) //判断配置文件中是否存在 spring.http.encoding.enabled这个配置;如果不存在,判断也是成立的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151131.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月19日 下午10:16
下一篇 2022年6月19日 下午10:16


相关推荐

  • rocketmq的原理_dns原理及其解析过程

    rocketmq的原理_dns原理及其解析过程1如何保证消息的可靠性传输生产者丢失数据:生产者设置同步提交消息,并且手动提交,将消息同步刷盘到从节点后在返回成功,broker:主从复制,同步刷盘消费端:消费重试,只有返回consume_success才算消费完成,保证消息的可靠性,最终还是消费16次还是失败的会进死信队列2.如何保证消息不被重复消费消费端消费消息的幂等1服务端代码根据messageId设置分布式锁,获取锁再做业务操作2更新数据库时校验业务的状态3或者设置唯一索引3.如何保证消息的顺序性…

    2025年6月27日
    3
  • java static关键字的作用是什么_java中的static关键字

    java static关键字的作用是什么_java中的static关键字一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在JVM加载一个类的时候,若该类存在static修饰的成员变量…

    2022年7月8日
    19
  • Java课程设计-学籍信息管理系统「建议收藏」

    一、系统分析    学生的学籍信息是记录学生的重要信息档案,如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情,该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息,生成电子数据库,并且能够做到查询、更改、删除、浏览等功能操作,让学籍信息的管理更加方便快捷。二、设计方案1、系统框架    学籍信息管理系统是集学籍信息录入,学籍信息查询,学籍

    2022年4月6日
    45
  • hive数据类型有哪些?[通俗易懂]

    hive数据类型有哪些?[通俗易懂] 关系数据库里有表(table),分区,hive里也有这些东西,这些东西在hive技术里称为hive的数据模型。今天本文介绍hive的数据类型,数据模型以及文件存储格式。这些知识大家可以类比关系数据库的相关知识。  首先我要讲讲hive的数据类型。Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型。  原子数据类型包括数值型、布尔型和字符串类型,具体如下表所示:基本数据类型类型…

    2026年2月7日
    6
  • 400亿估值下的压力:智谱鏖战AI“六小虎”第一股

    400亿估值下的压力:智谱鏖战AI“六小虎”第一股

    2026年3月12日
    2
  • [CNN] 卷积、反卷积、池化、反池化「建议收藏」

    [CNN] 卷积、反卷积、池化、反池化「建议收藏」之前一直太忙,没时间整理,这两天抽出点时间整理一下卷积、反卷积、池化、反池化的内容。一、卷积1、卷积的简单定义卷积神经网络中的卷积操作可以看做是输入和卷积核的内积运算。其运算过程非常容易理解,下面会有详细解释。2、举例解释(1)为了方便直接解释,我们首先以一个通道为例进行讲解,首先明确概念:1)输入是一个5*5的图片,其像素值如下:[11100011100011100110011…

    2022年5月22日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号