博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动配置原理
阅读量:3889 次
发布时间:2019-05-23

本文共 1097 字,大约阅读时间需要 3 分钟。

SpringBoot 自动配置原理:

1.springboot启动的时候,从主方法启动

@ImportResource(locations = {"classpath:beans.xml"})*/@SpringBootApplicationpublic class SpringBoot01HelloworldQuickApplication {	public static void main(String[] args) {		SpringApplication.run(SpringBoot01HelloworldQuickApplication.class, args);	}}

加载加载了@SpringBootApplication注解;@SpringBootApplication注解,开启了一个@EnableAutoConfiguration注解的自动配置功能、

打开@EnableAutoConfiguration注解,里面利EnableAutoConfigurationImportSelector选择器给Spring容器中来导入一些组件。

在这里插入图片描述
打EnableAutoConfigurationImportSelector选择器查看究竟导入哪些组件?
在这里插入图片描述

查看selectImports()函数-----

1.在selectImports这个方法里面主要有个 configurations,并且这个configurations最终会被返回。

这个configurations它是获取候选的配置。

List
configurations = getCandidateConfigurations(annotationMetadata,attributes);

2..l利用loadFactoryNames方法从类路径下得到一个资源

在这里插入图片描述

在这里插入图片描述

即扫描javajar包类路径下的“META-INF/spring.factories”这个文件
3. 扫描到的这些文件,最终把这些文件整成一个properties对象

**4.**然后它从properties对象里边获取一些值,把这些获取到的值来加载我们最终要返回的这个结果,这个结果就是我们要交给Spring容器中的所有组件,这相当于这factoryClassName就是我们传过来的Class的这个类名。

5传过来的Class是调用这个

getSpringFactoriesLoaderFactoryClass()这个方法得到从properties中获取到EnableAutoConfiguration.class类名对应的值

转载地址:http://hqthn.baihongyu.com/

你可能感兴趣的文章
SAP HANA SQL GROUP BY / ORDER BY / OVER / CASE
查看>>
gethostbyname和gethostbyaddr的用法
查看>>
IPv6和IPv4之间的通信机制和方法
查看>>
用syslog记录UNIX日志
查看>>
syslog(),openlog(),closelog()
查看>>
Ubuntu安装后的一些配置
查看>>
ubuntu9.10 tftp服务设置(这个绝对好使)
查看>>
关于UNIXDOMAIN协议的接收发送者验证
查看>>
I/O操作上设置超时之alarm闹钟法
查看>>
查看返回接收到UDP数据包的宿地址结构--(适用于LINUX和BSD系统)
查看>>
如何开启_GNU_SOURCE宏
查看>>
从网上搜索到的一些关于pcap源代码,入门级的
查看>>
Linux—— Posix IPC
查看>>
在ubuntu下安装ACE编译环境
查看>>
公司HR面试经常问的问题及回答思路
查看>>
ACE之反应堆学习(一)
查看>>
apache配置
查看>>
快速精通FRAME
查看>>
msf反弹木马之免杀
查看>>
写一个简单的python爬虫程序,爬取一下百度图片
查看>>