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初始化。
查看全文
相关阅读:
错误libvirtError: invalid argument: could not find capabilities for domaintype=kvm
容器部署ES 和 ES head插件
squid配置yum源代理服务器
coredns 1.2.2 反复重启问题
ansible debugger 模块
入门篇-contrail-command(对接openstack)All-In-One
目标文件是什么鬼?
汇编指令集
切换GCC编译器版本
kubernetes-dashboard登录出现forbidden 403
原文地址:https://www.cnblogs.com/elnimo/p/13792568.html
最新文章
对称加密的概述及简单实现
sleep()和wait()的区别及wait方法的一点注意事项
day25作业
day22-23作业
集合类List、Set、Map的区别、联系和遍历方式
day17作业
day16作业
Java中String字符串常量池
Java中的代理模式--静态代理和动态代理
深入理解Java虚拟机类加载机制
热门文章
动态规划本质理解:01背包问题
线性代数学习笔记
23种设计模式总结
Java单例模式的5种实现方式
Java基于自定义注解的面向切面的实现
滑动窗口的最大值
二维数组中的查找
和为s的两个数字VS和为s的连续正数序列
SpringMVC中的适配器(适配者模式)
Tencent研发工程师笔试知识点
Copyright © 2011-2022 走看看