@ConditionalOnProperty配置条件用法

这篇具有很好参考价值的文章主要介绍了@ConditionalOnProperty配置条件用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.application.yml配置

spring:
  rabbitmq:
    listener: 
      simple:
        prefetch: 1
        acknowledge-mode: auto
        retry:
          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(){
   
    @Bean
    public 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博客文章来源地址https://www.toymoban.com/news/detail-821734.html

到了这里,关于@ConditionalOnProperty配置条件用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 细讲Labview条件结构用法及易错点

    本文讲解Labview条件结构的常用情景及易错点注意事项。帮助大家深刻理解并使用该结构,欢迎点赞关注加评论,有问题可以私聊或在下方评论区留言。 本文程序均附在文章结尾,可自行下载学习。 博主之前讲过Labview事件结构、For循环等的基础知识介绍,有兴趣强化基础的小

    2024年01月20日
    浏览(36)
  • Java Stream常见用法汇总,开发效率大幅提升

    本文已经收录到Github仓库,该仓库包含 计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享 等核心知识点,欢迎star~ Github地址 如果访问不了Github,可以访问gitee地址。 gitee地址 Java8 新增的

    2023年04月14日
    浏览(63)
  • Scala条件分支语句if用法详细介绍

    在Scala中,控制结构语句包括条件分支语句和循环语句。其中,条件分支语句有if语句、if…else 语句、if…else if…else 语句以及 if…else 嵌套语句;条件分支语句的用法介绍如下: 1.if格式的语法格式 2.if…else 语句的语法格式如下: 3.if…else if…else 语句的语法格式如下: 4.if…

    2024年02月13日
    浏览(52)
  • SQL中的单条件判断函数IF,和多条件判断CASE WHEN的用法

    在SQL中,条件判断函数IF用于根据指定的条件返回不同的值。 condition:要判断的条件。 value_if_true:如果条件为真,则返回的值。 value_if_false:如果条件为假,则返回的值。 假设有如下名为studensts的表,包含id、name和score字段: 我们想根据学生的分数判断是否及格,并返回相

    2024年02月11日
    浏览(82)
  • 【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。

      stdint.h 是从 C99 中引进的一个标准 C 库的文件,可以在MDK5的安装路径:D:MDK5.34ARMARMCCinclude中找到。   stdint.h 定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。   在MDK中需要配置才能支持使用S99标准, 默认是勾选的 。   只

    2024年02月08日
    浏览(43)
  • Spring 中的 @ConditionalOnProperty 注解

    介绍@ConditionalOnProperty注解的主要目的。 通常,在开发基于Spring的应用程序时,可能需要根据配置属性的存在和值有条件地创建一些bean。 例如,取决于是否将属性值设置为“ prod”或“ test”,可能想要注册一个DataSource bean来指向生产或测试数据库。 幸运的是,实现这一目标

    2024年02月16日
    浏览(37)
  • 条件运算符? : 与if-else语句的对比及用法详解

    条件运算符? : :给程序员提供了一种简便的方式进行条件判断和表达式的求值。在C语言中,条件运算符? : 是一个三元运算符,可以根据条件的真假来判断输出结果。本篇文章将详细介绍条件运算符的用法,以及与if-else语句的对比,并结合实例来进一步理解。 条件运算符?

    2024年02月05日
    浏览(48)
  • SpringBoot - @ConditionalOnProperty注解使用详解

    写在前面 在开发基于SpringBoot框架的项目时,会用到下面的条件注解,有时会有需要控制配置类是否生效或注入到Spring上下文中的场景,可以使用@ConditionalOnProperty注解来控制@Configuration的注解是否生效。 实现原理 @ConditionalOnProperty通过havingValue与配置文件中的值进行对比,如果

    2023年04月26日
    浏览(84)
  • SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

    SQL的 AND 运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是 AND 运算符的基本语法: column1 , column2 ,等是您要选择的列名称。 table_name 是您从中选择记录的表的名称。 condition1 , condition2 ,等是筛选记录的条件。 使用 AND 运算符,所有条件都必须为 TR

    2024年02月05日
    浏览(50)
  • Spring boot @ConditionalOnProperty 使用以及作用

    来源 即: 来源于Spring boot 中的自动化配置部分 实际作用: 通过读取本地配置文件中的值来判断 某些 Bean 或者 配置类 是否加入spring 中。 即 当前类通过 @Component 或者 @Configuration 注册实体到spring 中时,都可以通过 @ConditionalOnProperty 来控制是否加入或者说有无该项。 与 @Com

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包