自动配置原理精讲||@Conditional ||怎么知道哪些自动配置类生效? 启用debug=true属性(在配置文件配置);
自动配置原理精讲
派生注解
配置文件怎么配置
server.port
spring.config.location=”D://application.properties”
https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#common-application-properties
https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/htmlsingle/#common-application-properties
自动配置原理精讲
- SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration
查看AutoConfigurationImportSelector.class
进入getCandidateConfigurations()
进入loadFactoryNames ()
进入loadSpringFactories ()
总结
- SpringBoot启动会加载大量的自动配置类
- 我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
- 我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
- 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
- xxxxAutoConfigurartion:自动配置类;给容器中添加组件
- xxxxProperties:封装配置文件中的默认配置
@Conditional派生注解
@ConditionalOnJava 系统的java版本是否符合要求
@ConditionalOnBean 容器中存在指定Bean;
@ConditionalOnMissingBean 容器中不存在指定Bean;
@ConditionalOnExpression 满足SpEL表达式指定
@ConditionalOnClass 系统中有指定的类
@ConditionalOnMissingClass 系统中没有指定的类
@ConditionalOnSingleCandidate 容器中只有一个指定的Bean,或者这个Bean是首选Bean
@ConditionalOnProperty 系统中指定的属性是否有指定的值
@ConditionalOnResource 类路径下是否存在指定资源文件
@ConditionalOnWebApplication 当前是web环境
@ConditionalOnNotWebApplication 当前不是web环境
@ConditionalOnJndi JNDI存在指定项
所有的条件配置之间的关系是并且的关系
我们怎么知道哪些自动配置类生效?
我们可以通过启用debug=true属性(在配置文件配置);
来让控制台打印自动配置报告,这样我们就可以很方便的知道哪些自动配置类生效;
自动配置原理精讲||@Conditional ||怎么知道哪些自动配置类生效? 启用debug=true属性(在配置文件配置);相关推荐
- 深入Java核心 Java内存分配原理精讲
深入Java核心 Java内存分配原理精讲 Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详 ...
- 视频教程-区块链技术原理精讲-区块链
区块链技术原理精讲 5年JAVA/Go研发工程师经验.目前作为公司技术负责人从事区块链架构设计.研发工作. 熟悉分布式系统/区块链.云计算/虚拟化技术.敏捷开发等领域技术,开源软件爱好者. 荆帅帅 ¥ ...
- JavaScript核心原理精讲第三章 数组原理和排序
07-数组原理(上):帮你梳理眼花缭乱的数组 API 我在上一讲为你剖析了闭包这个难点,带你了解了作用域.闭包产生的原因及表现形式.那么这一讲,我们一起来手工实现一个 JSON.stringify 的 ...
- ShardingSphere分库分表核心原理精讲第十一节 分布式事务详解
27 分布式事务:如何理解 ShardingSphere 中对分布式事务的抽象过程? 从今天开始,我们将进入一个全新模块,即ShardingSphere 分布式事务.这是一个非常重要的主题,我们将通过 ...
- ShardingSphere分库分表核心原理精讲第十二节 数据安全和脱敏详解
本资源由 itjc8.com 收集整理 今天,我们讨论 ShardingSphere 中的数据脱敏模块.通过在 "10 | 数据脱敏:如何确保敏感数据的安全访问?" 课时中的介绍, ...
- LUT查找表实现多路复选器原理精讲
(1)多路复选器的概念 多路复用器即数据选择器,用来将N个输入通道的数据复用到一个输出通道上,多路复用器在数字系统中有着非常重要的应用.4选1多路复用器的实现结构如图所示: 图中有四路数据 C0到C3 ...
- 2 Java并发原理精讲课程学习笔记
1.1.初始线程8大核心基础 实现多线程的方法到底有1种还是2种还是4种? 怎样才是正确的线程启动方式? 如何正确停止线程? 线程的一生--6个状态(生命周期) Thread和Object类中的重要方 ...
- Selenium原理精讲
Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试(目前支持的语言有Java,Python,Ruby ...
- java 检测硬盘原理_深入Java核心 Java内存分配原理精讲
Java内存分配与管理是Java的核心技术之一,一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ...
最新文章
- 龙岩学院和三明学院计算机专业,龙岩学院和三明学院哪个比较好?
- 转:中国学生为什么学不好计算机 谭浩强
- delphi开发回忆录——示例源码下载
- Android九点阵手势识别,能量黑科技模块八-九:两路按键颜色手势魔块
- Linux 命令之 arch --显示主机的硬件结构类型
- python嵌入shell代码_大家一起学python-Python基础1
- Java 10 var关键字详解和示例教程
- android实现应用程序只有在第一次启动时显示引导界面
- UNIX环境高级编程之第9章:进程关系
- Eclipse 导入项目与 svn 插件关联全过程记录
- 前端js-angluar定时刷新器
- ARM SMMU的原理与IOMMU
- 电摩测试速度什么软件,速度最快的4款新电动车,你更看好谁?为什么呢?
- 【抽象代数概念速查】Lagrange Interpolation-拉格朗日插值
- 手机里竟然有这么多传感器!终于都搞懂了
- MFC 绘制半透明图片
- java计算器制作教学视频_java实例——简单计算器的制做
- JavaScript的入门(下)
- 使用 kubectl drain 从集群中移除节点
- 迪杰特斯拉算法+堆优化