zoukankan      html  css  js  c++  java
  • SpringBoot_配置-自动配置原理(超重点)

    平时我们在properties或yml配置文件能写已有的配置(比如server.port)是有依据的,能配置的属性来源自xxxProperties文件中;下面开始讲解整个过程:

      1.我们书写一个主配置类,加了springbootApplication注解,有了该注解,我们就可以启动springboot项目以及加载很多的自动配置类

      2.我们点进springbootapplicaiton注解可以看到,如下:

       3.我们重点关注@EnableAutoConfiguration,点进去如下:

     

       4.我们具体导了哪些组件就是看这个选择器类,点进这个类并查看它的父类,父类中有一个方法selectImports()就是来获取需要加载哪些自动配置类,如图:

       5.我们点进getCandidateConfiguration()里面,如下:

       6.我们在点进loadFactoryNames()里,查看它的实现细节:

     

       7.这里的factoryClassName就是我们的EnableAutoConfiguration,根据这个类找到要加载的自动配置类,并把他们添加到容器中:

       8.所以每一个xxxAutoConfiguration的类都是容器的组件,用他们来做自动配置,没错,这些配置类又得加入他们各自的组件,以为例子,进入到这个类:

     

       上面这个方法是HttpEncodingAutoConfiguration的一个方法,会向容器导入一个组件,这个组件的属性正是从当前自动配置类的HttpEncodingProperties属性中获取的,也就意味着本自动配置类要加载的组件很大部分属性都是要依赖xxxxProperties对象中的属性,xxxxProperties类中的属性可以理解成很多其他组件属性的集合

     

     

       9.总结:

  • 相关阅读:
    前端获取后台传输过来是数据 {张三:12} 解析为[object object],获取其中内容
    Idea 配置Jrebel热部署
    软件清单
    js实现敲回车键登录
    myql忽略大小写问题解决
    磁盘分区(2):格式化与挂载文件系统
    磁盘分区(1):fdisk和parted
    初识Docker:BusyBox容器后台运行失败
    安装Docker:解决container-selinux >= 2.9问题
    重启nginx:端口被占用问题
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/13624103.html
Copyright © 2011-2022 走看看