码上快乐
1秒登录
首页
榜单
标签
关于
搜索
相关内容
简体
繁体
SpringBoot高级-自动配置之@EnableAutoConfiguration注解
本文转载自
查看原文
2020-10-10 14:42
800
前言:通过之前的自动配置原理相关介绍的文章,我们对自动配置的流程大概都很清楚了,这里我们对 @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初始化。
×
免责声明!
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。
猜您在找
SpringBoot高级-自动配置之@Import注解
SpringBoot高级-自动配置之Enable*注解原理
SpringBoot自动化配置之二:自动配置(AutoConfigure)原理、EnableAutoConfiguration、condition
01.springboot入门--启用自动配置注解EnableAutoConfiguration
SpringBoot高级-自动配置之自定义starter
SpringBoot高级-自动配置之切换内置web服务器
【玩转SpringBoot】用好条件相关注解,开启自动配置之门
SpringBoot 自动配置之Spring Data JPA
@EnableAutoConfiguration自动配置原理分析
SpringBoot中@EnableAutoConfiguration注解用法收集
粤ICP备18138465号
© 2018-2025 CODEPRJ.COM