@ConditionalOnProperty配置条件用法

1.application.yml配置

spring:rabbitmq:listener: simple:prefetch: 1acknowledge-mode: autoretry:enabled: true # consumer retry

2.指定prefix +name + havingValue

指定了havingValue,要把配置项的值与havingValue对比,一致则加载Bean

@Configuration
@ConditionalOnProperty(prefix = "spring.rabbitmq.listener.simple.retry", name = "enabled", havingValue = "true")
public class ErrorConfiguration(){@Beanpublic DirectExchange errorExchange(){return new DirectExchange("error.direct");}.....
}

@ConditionalOnProperty源码:

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Documented
@Conditional(OnPropertyCondition.class)
public @interface ConditionalOnProperty {//name的别名,和value不可同时使用String[] value() default {};/**配置项的前缀,例如完整的配置是config.person.enable=true* 那 prefix=“config.person”*/String prefix() default "";/**配置项的属性,例如完整的配置是config.person.enable=true在前面已经设置 prefix=“config.person”那么 name=“enable”;如果prefix没有设置,那么name可以是整个配置项,例如下面:name=“config.person.enable”,效果和上面的一样*/String[] name() default {};/*** 会将配置文件中的值和havingValue的值对比,如果一样则加载Bean,例如:* * config.person.enable=true,havingValue=“true”,加载Bean* * config.person.enable=false,havingValue=“false”,加载Bean* * config.person.enable=ok,havingValue=“ok”,加载Bean* * config.person.enable=false,havingValue=“true”,不加载Bean* * config.person.enable=ok,havingValue=“no”,不加载Bean* * 当然havingValue也可以不设置,只要配置项的值不是false或“false”,都加载Bean,例如:* * config.person.enable=ok,不设置havingValue,加载Bean* * config.person.enable=false,不设置havingValue,不加载Bean*/String havingValue() default "";/*** 如果在配置文件中没有该配置项,是否加载Bean*/boolean matchIfMissing() default false;}

参考:SpringBoot教程(7) @ConditionalOnProperty 详细讲解和示例-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 在医学中的三个关键作用;联想 AI PC 全阵容亮相 CES 2024

近日,在接受 Northwestern 采访时,著名心脏病学教授 Sanjiv Shah 谈及了 AI 和医学结合所带来的三个关键作用。 Sanjiv Shah 说道:「首先是诊断。有许多疾病,无论是常见的还是罕见的,都容易被误诊或漏诊。AI 可以提醒临…

前端性能优化之渲染优化

页面渲染过程 为了使每一帧页面渲染的开销都能在期望的时间范围内完成。就需要开发者了解渲染过程的每个阶段,以及各阶段中有哪些优化空间是我们力所能及的。经过分析根据开发者对优化渲染过程的控制力度,可以大体将其划分为5各部分:js处理、…

Farad capacitor法拉电容优点及缺点

Farad capacitor 法拉电容又称Electrical Double-Layer Capacitor双电层电容器、Gold capacitor黄金电容、Super capacitor 超级电容器,是一种化学元件。Super capacitor 超级电容器通过极化电解质来储能,但不发生化学反应,而且储能过程是可逆…

如何在 Windows10 下运行 Tensorflow 的目标检测?

看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示图片等…

Leetcode160 两个链表是否相交

leetcode 160题,判断两个链表是否相交 此题可以说是算法界第一深情,如果我走过你走过的路,那么我们就可能会相遇。 具体解决思路如下 两个链表是否相交有两种可能,一种不相交,一种相交,首先来看下相交的…

golang学习-指针

1、定义 指针也是一个变量,但它是一个特殊的变量,它存储的是另一个变量的内存地址。是引用数据类型。 取一个变量的地址:&a 定义: var p *int &a 可以理解为 指针变量p中存储的是a的内存地址,但是变量p也…

element-plus 、element-ui —— Cascader 勾选内容后自动关闭内容选择面板

最近工作需求是 el-Cascader 级联多选框 任意选择一项,自动关闭面板? 来总结记录下。 element-ui的关闭面板方式👇 this.$refs.CascaderRef.dropDownVisible false element-plus的关闭面板方式👇 vue3.0写法 CascaderRef.val…

leaflet学习笔记-贝塞尔曲线绘制(八)

前言 两点之间的连线是很常见的,但是都是直直的一条线段,为了使连线更加平滑,我们可以使用曲线进行连线,本功能考虑使用贝塞尔曲线进行连线绘制,最后将线段的两端节点连接,返回一个polygon。 贝塞尔简介 …

大模型学习之书生·浦语大模型4——基于Xtuner大模型微调实战

基于Xtuner大模型微调实战 Fintune简介 海量数据训练的base model指令微调Instructed LLM 增量预训练微调 增量数据不需要问题,只需要答案,只需要陈述类的数据 指令跟随微调 指定角色指定问题给对应的user指定答案给assistant LIaMa2InternLM 不同的模…

金三银四-JVM核心知识高频面试题

又要快到一年一度的金三银四,开始复习啦~! 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些,它们的工作原理是什么? 二、JVM中的类加载器有哪些,它们各自的作用是什么? 三、JVM中垃圾回收的…

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后,还需要安装gcc编译器和g编译器。 gcc:编译C语言程序的编译器; g:编译C代码的编译器; 1、在Windows下安装VSCode; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…

c++学习笔记-STL案例-演讲比赛管理系统1

目录 1演讲比赛需求 1.1 比赛规则 1.2 程序功能 2.项目创建 2.1 创建新项目 2.2 添加文件 3.3 文件添加成功 3.创建管理类 3.1 功能描述 3.2 创建文件 4 菜单功能 4.1 功能描述 4.2 添加成员函数 4.3 菜单功能实现 4.4 main()函数中调用 4.5 实现结果 5 退出系…

C++力扣题目104--二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路 看完本篇可以一起做了如下…

【C++11/C++17】左值与右值

左值和右值是C中的两个重要概念,它们涉及到变量的存储位置和生命周期。 左值(Lvalue) 左值表示一块具有确定地址的内存单元。它表示一个具体的、明确存在的存储单元。可以被取地址运算符(&)获取其地址。变量、数…

pytorch详细探索各种cnn卷积神经网络

目录 torch.nn.functional子模块详解 conv1d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv2d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv3d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv_transpose1d 用法…

electron+vue编辑Office Word?

Electron 桌面应用是基于 Chromium 内核的,而谷歌Chrome取消了对PPAPI插件支持后,在线Office方案纷纷失效,只能更换国产浏览器在低版本浏览器苟延残喘,不能用于electronvue项目。 经过小编不断的寻找,终于找到一款至今…

redis主从复制、哨兵与集群

目录 一、概述 二、redis主从复制 1、概念 2、主从复制的作用 3、主从复制流程 4、搭建Redis 主从复制实验 ①在三台服务器上安装redis (1)关闭防火墙和安全机制 (2)修改内核参数 (3)安装redis …

自旋框的使用

1. 自旋框 实例化 //实例化单精度自旋框QSpinBox* spinBox new QSpinBox(this);//实例化双精度自旋框QDoubleSpinBox* doubleSpinBox new QDoubleSpinBox(this);1.1 单精度自旋框 QSpinBox 1.1.1 单精度自旋框的基本函数 QSpinBox_QDoubleSpinBox Dialog.cpp #include "…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势(一)网络安全风险类型(二)网络安全保险的作用(三)与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

vue中常用的指令修饰符

vue中常用的指令修饰符有哪些 在Vue.js中,指令修饰符用于在指令后面以点号(.)形式添加特殊后缀,以表示对指令的特定行为或修饰。 以下是一些常用的Vue.js指令修饰符: 1. v-on ()指令修饰符&am…