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初始化。
查看全文
相关阅读:
C#编程(七十九)---------- 反射
C#编程(七十一)---------- 自定义特性
C#编程(七十六)----------使用指针实现基于栈的高性能数组
C#编程(七十五)----------C#使用指针
微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能
[asp.net]c# winform打印类
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
ValueError: invalid literal for int() with base 10: 'abc'
检查网址是否正常访问
Python测试网络连通性示例【基于ping】
原文地址:https://www.cnblogs.com/elnimo/p/13792568.html
最新文章
服务器收不到支付宝notify_url异步回调请求的问题 支付宝notify 异步通知与https的问题
mybatis使用用stdout-logging日志显示sql语句
关闭Postman 证书的验证
异常详细信息: System.Security.SecurityException: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。
[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up IDEA2019的database插件无法链接mysql的解决办法(08001错误)
mathematica练习程序(第一章 Mathematica的基本量)
命令行cpp与cu文件混合编译
matlab练习程序(高阶常微分方程组数值解)
安装pycocotools报无效的数值参数“/Wno-cpp”错误
matlab练习程序(常微分方程向量场)
热门文章
Matlab(Simulink-PID控制)
matlab练习程序(人工势场法)
matlab练习程序(快速搜索随机树RRT)
matlab练习程序(概率路线图PRM)
C#编程(八十三)---------- 程序集的含义
C#高级编程----错误和异常的总结
C#编程(八十二)---------- 用户自定义异常类
C#编程(八十一)---------- 捕获异常
C#编程(八十)---------- 异常类
C#高级编程----反射的小结
Copyright © 2011-2022 走看看