Spring Boot 自动配置原理再探
看了狂神和雷神,我觉得这个自动配置的原理,就是一个属性找值的过程。(即标注了EnableAutoConfiguration注解的类找properties的过程)
第一点:properties从 META-INF/spring.factories 获得,所有的配置文件都在这里,所以要扫描所有jar包类路径下的这个文件夹,将META-INF/spring.factories 中的内容封装为properties。
第二点:要往IOC容器中导入哪些组件是需要用AutoConfigurationImportSelector自动导入选择器进行选择的。
第三点:自动导入选择器需要getCandidateConfigurations:获取候选的配置,SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());这些就是调用loadFactoryNames然后参数为标注了EnableAutoConfiguration注解的类,然后在封装好的properties中获取与这些类对应的值。这样就完成了自动配置的原理。
第四点:每一个***AutoConfiguration 类都是容器中的一个组件,都加入到容器中,用他们来做自动配置。
第五点:每一个自动配置类进行自动配置功能,
以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释
精髓:
1、SpringBoot启动会加载大量的自动配置类
2、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类
3、我们再看这个自动配置类中到底配置了那些组件(只要有我们要用到的组件,我们就可以在配置文件中指定这些属性的值)
4、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性,我们就可以在配置文件中指定这些属性的值。
Spring Boot 自动配置原理再探相关推荐
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
- 芋道 Spring Boot 自动配置原理
转载自 芋道 Spring Boot 自动配置原理 1. 概述 友情提示:因为本文是分享 Spring Boot 自动配置的原理,所以需要胖友有使用过 Spring Boot 的经验.如果还没使用过 ...
- 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理
本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...
- 【Spring Boot实战】源码解析Spring Boot自动配置原理
一.简介 Spring致力于让Java开发更简单,SpringBoot致力于让使用Spring进行Java开发更简单,SpringCloud致力于基于SpringBoot构建微服务生态圈,让微服务开发 ...
- Spring Boot自动配置原理
要了解Spring Boot的自动配置首先我需要先了解Spring Boot的两个机制,一个是配置文件如何进入到系统变成属性,二是如何将这些属性加入到容器中. 首先我们需要有一个组件,这个组件中的属性 ...
- Spring Boot自动配置原理分析
一.写在前面 随着时间的迁移Spring Boot 越来越多的出现在Java 后端程序员的视野中,Spring Boot 之所以会那么流行,很大的一个原因是自身集成了很多的Bean,简化了传统Srin ...
- Spring Boot概述与入门特点配置方式注入方式yim配置文件与多文件配置Spring Boot自动配置原理lombok应用
1. Spring Boot概述 Spring Boot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 首页Spring Boot简介可以 ...
- Spring Boot 自动配置原理
自动配置原理 配置文件到底能写什么?怎么写?自动配置原理: 参考:https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htm ...
- Q2 Spring Boot自动配置原理(ok)
SpringBoot中为什么执行个SpringApplication.run 方法,就可以将classpath下的那么多类注册进IoC容器呢? 我们通过一个例子来看看: @SpringBootAppl ...
最新文章
- html5网页怎么实现内容追加,纯js实现网页内容复制后自动追加自定义内容
- 【翻译自mos中文文章】重建控制文件的方法
- .net一个函数要用另一个函数的值_Mysql:条件判断函数-CASE WHEN、IF、IFNULL详解
- 「技术人生」第6篇:技术同学应该如何理解业务?
- iphone文件怎么上传到服务器,iPhone编程中文件上传到HTTP服务器
- Java Map用法
- 贪心+优先队列 HDOJ 5360 Hiking
- 软件测试 学习之路 CSS (三)
- 程序设计工程师c语言,《C语言程序设计》自学百问.doc
- 这些反病毒斗争经验,我全放这了!
- Linux 命令(88)—— more 命令
- Lc.exe已退出 代码为-1
- java kaptcha_kaptcha Java验证码
- 2021ACA世界大赛线上全球总决赛,绽放中国创意设计色彩
- Anylogic问题-----模型运行中外部输入控制模型
- 基于Java Web的随意购商城系统(开源项目)
- CXF学习(1)——CXF框架
- 黑客能篡改WiFi密码,源于存在漏洞
- OSPF区域划分和区域间路由(三类LSA)
- 阿里云香港服务器购买教程(图文)