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.总结:

  • 相关阅读:
    AppDomain and related
    实现 Finalize 和 Dispose 以清理非托管资源
    递归显示treeview,求更好方法
    SQL练习题之子查询
    jquery in action 学习笔记
    daily english 201117
    TOP AND APPLY
    Create trace with tsql
    (转)sqlserver 锁查看
    一个简单的windows services demo(c#)
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/13624103.html
Copyright © 2011-2022 走看看