springboot的自动配置功能,主要流程如下:

1 启动的时候加载我们的主配置类,也就是我们的入口类;从而开启我们的自动配置配置功能,这个是通过@EnableAutoConfiguration注解实现的;

2 @EnableautoConfiguration利用其注解类中的方法:EnableAutoConfigurationImportSelector,来给容器中导入一些组件;而需要导入那些组件是通过其调用的selectImport()方法实现的,这个方法最终会调用SrpingFactoriesLoader.loadFactoryNames(),来扫描每个jar包下面的META-INF/spring.factories文件,将这个文件中配置的EnableAutoConfiguration对应的所有值添加到容器中;

注:这里添加的所有值都是一个配置类,而且其名字命名规则:XXXAutoConfiguration;

3 加入的所有 XXXAutoConfiguration组件,都是配置类,最终其会添加我们需要使用到的组件到容器中;

而每一个XXXAutoConfiguration配置类有一个关键的注解:@EnableConfigurationProperties(XXXProperties.class);在这个注解中将application.properties或者application.yml中的对应配置与我们的java bean关联起来;然后我们在XXXAutoConfiguratio类中添加组件的时候会用到XXXProperties类中的属性;

所有的配置类都使用的这个套路;

springboot自动配置的总体思路就是,在添加组件的时候将组件中各个属性值的配置,放在对应的java bean中,配置类在添加某个组件的时候从对应的java bean中读取属性的初始化之,而初始化的值我们配置在对应的配置文件中;

SpringBoot学习(1)的更多相关文章

  1. springboot 学习资源推荐

    springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...

  2. Springboot学习记录1--概念介绍以及环境搭建

    摘要:springboot学习记录,环境搭建: 官方文档地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/ht ...

  3. SpringBoot学习笔记

    SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...

  4. springboot学习(一)——helloworld

    以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给 ...

  5. SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问

    SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问 https://blog.csdn.net/yft_android/article/details/80307672

  6. Springboot学习07-数据源Druid

    Springboot学习07-数据源Druid 关键字 Druid 前言 学习笔记 正文 1-Druid是什么 Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器 ...

  7. Springboot学习06-Spring AOP封装接口自定义校验

    Springboot学习06-Spring AOP封装接口自定义校验 关键字 BindingResult.Spring AOP.自定义注解.自定义异常处理.ConstraintValidator 前言 ...

  8. Springboot学习05-自定义错误页面完整分析

    Springboot学习06-自定义错误页面完整分析 前言 接着上一篇博客,继续分析Springboot错误页面问题 正文 1-自定义浏览器错误页面(只要将自己的错误页面放在指定的路径下即可) 1-1 ...

  9. Springboot学习04-默认错误页面加载机制源码分析

    Springboot学习04-默认错误页面加载机制源码分析 前沿 希望通过本文的学习,对错误页面的加载机制有这更神的理解 正文 1-Springboot错误页面展示 2-Springboot默认错误处 ...

  10. Springboot学习笔记(六)-配置化注入

    前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而 ...

随机推荐

  1. python 按值排序

    转自:http://www.cnpythoner.com/post/266.html,感谢分享! python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需 ...

  2. java面试题之----super和this

    super和this的异同: super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句) supe ...

  3. input file 类型为excel表格

    以下为react写法,可自行改为html的 <div className="flag-tip"> 请上传excel表格, 后缀名为.csv, .xls, .xlsx的都 ...

  4. js:正则表达式

    <script type="text/javascript"> function SubmitCk() { var reg = /^([a-zA-Z0-9]+[_|\_ ...

  5. 【NLP_Stanford课堂】词形规范化

    一.为什么要规范化 在做信息检索的时候,一般都是精确匹配,如果不做规范化,难以做查询,比如用U.S.A去检索文本,结果文本里实际上存的是USA,那么实际上应该能查到的结果查不到了. 所以需要对所有内容 ...

  6. (六)svn 服务器端使用之权限管理

    权限管理(了解) 认证授权机制 在企业开发中会为每位程序员.测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续 ...

  7. 【Leetcode】【Easy】Implement strStr()

    Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...

  8. FIFO认识(一)

    1.什么是FIFO? FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据 ...

  9. June 10th 2017 Week 23rd Saturday

    A lot of things, we can be touched, but we can not shed tears. 很多事情,我们可以感动,却不能流泪. Sometimes I was to ...

  10. 【[HEOI2012]采花】

    \(HH\)的项链加强版,数据范围和题意都加强了 题意大概:给出n个数,求区间出现次数>=2的数的个数. 一眼莫队,可是我还不会莫队啊 那就树状数组吧 回忆一下\(HH\)的项链,套路差不多,那 ...