zoukankan
html css js c++ java
SpringBoot高级-自动配置之@EnableAutoConfiguration注解
前言:通过之前的自动配置原理相关介绍的文章,我们对自动配置的流程大概都很清楚了,这里我们对 @EnableAutoConfiguration 注解的实现流程进行跟踪,发掘源码中实现的原理。
一、查看@EnableAutoConfiguration 注解的定义
二、查看@Import导入的ImportSelector接口实现类 AutoConfigurationImportSelector
三、查看实现类 AutoConfigurationImportSelector 的 selectImports() 方法
四、查看 selectImports() 方法,发现其调用了 getAutoConfigurationEntry() 方法
五、查看 getAutoConfigurationEntry() 方法, 发现其调用了 getCandidateConfigurations() 方法
六、查看 getCandidateConfigurations() 方法
断点调试,发现list对象configurations会有117个元素,这些元素就是Bean对象的全限定类名,通过对象的全限定类名将Bean初始化到IOC容器中
在断言中,有一段提示信息"No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct."
找到 spring.factories 文件的位置
打开该文件,注意“”的使用说明。列表中,就有我们熟悉 RestTemplateAutoConfiguration、EmbeddedWebServerFactoryCustomizerAutoConfiguration 等自动配置类
最后,打开一个EmbeddedWebServerFactoryCustomizerAutoConfiguration 看一看
小结:虽然由于@EnableAutoConfiguration 注解的使用,初始化了spring.factories文件列表中的配置类,但是这些配置类中,使用了Condition条件,必须满足Condition条件,才能最终将Bean初始化。
查看全文
相关阅读:
windows 1061
Golang 编程思维和工程实战
Apache Tomcat jar Catalina
MySQL Client/Server Protocol mysql协议
蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
实习生系列之找实习的途径
Yahoo!网站性能最佳体验的34条黄金守则
onselectstart="return false"无法复制文字
VS2008开发环境中容易遇到的3个问题之解决办法
实践与交流:“三保险”为世界顶级安全防范软件ESET Nod32 4.0的正常使用“保驾护航”
原文地址:https://www.cnblogs.com/elnimo/p/13792568.html
最新文章
cd %~dp0 进入批处理文件所在目录
Go Modules
服务API版本控制设计与实践
vivo统一告警平台建设与实践
从根本上了解异步编程体系
作业帮云原生成本优化实践
InnoDB事务锁系统及其实现
Got an error reading communication packets db.Conn(context.Background()) wsarecv: An existing connection was forcibly closed by the remote host
按 I/O 大小对进程排序 磁盘读写频率
单元测试
热门文章
转型之后——流量洪峰中如何设计弹性微服务架构
Linux I/O
跨平台编译代码适配
Redis线程模型
操作注册表
京东APP秒级百G日志传输存储架构设计与实战
How Twitter Is Scaling 演员模型
第六代注册中心 面向运维的注册中心
从 RPC 到服务化框架设计
Dubbo3 应用级服务发现
Copyright © 2011-2022 走看看