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初始化。
查看全文
相关阅读:
TimesTen的安装和连接
推荐10款免费而优秀的图表插件
做了一个jquery插件,使表格的标题列可左右拉伸
基于SSM实现的简易员工管理系统(基于阿里云的网站上线篇)
基于SSM实现的简易员工管理系统
基于局域网的超简易即时通讯软件(二)
基于局域网的超简易即时通讯软件(一)
我的Vim常用快捷键
php最新面试题
2017php经典面试题
原文地址:https://www.cnblogs.com/elnimo/p/13792568.html
最新文章
(翻译)Xamarin.Essentials: 移动应用的跨平台 API
Docker 常用命令收集
走进 Cake for .NET
走进 Visual Studio Mobile Center for Xamarin.Forms
走进 UnitTest for Xamarin.Forms
走进 Xamarin Test Recorder for Xamarin.Forms
走进 UITest for Xamarin.Forms
走进 Prism for Xamarin.Forms
Run Rancher server on windows
StyleCop setting
热门文章
Visual Studio Code 相关设置
内部技术分享的 PPT
基于 WebAPI 的 API 实现
自定义一个WPF的PathButton
用开源AOP简化MVVM框架
走进 MvvmLight for Xamarin.Forms
WCF + EF 遇到的问题
基于WCF的API实现
MvvmCross for WPF File Plugin
MvvmCross for WPF 支持子窗体显示、关闭、传参
Copyright © 2011-2022 走看看