java技能积累-根据配置项来控制某个类或者某个bean是否需要加载-@ConditionalOnProperty

本文介绍了在开发中如何通过@ConditionalOnProperty配置bean的加载,以及如何使用ConditionalOnExpression根据SPEL表达式或配置属性动态决定Bean的启用。重点讨论了(prefix,name,havingValue,matchIfMissing)参数的作用和替换原有方案的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景

在日常开发过程中,很多时候我们需要控制一个bean是否需要加载,例如我们自定义了一个redis的start,这些start的核心类的注入放到了config里面去统一管理,这个时候我们需要通过在配置文件里面的简单配置,达到开启redis功能的效果,就可以用@ConditionalOnProperty来实现

参数介绍

  • prefix:可选参数,指定配置文件中的前缀
  • name:必填参数,指定配置项的名字
  • havingValue:可选参数,用于指定与配置项的值进行对比的值。如果配置项的值与该值相同,则返回true,否则返回false,这个参数决定了当前配置是否会加载
  • matchIfMissing:可选参数,用于指定当配置项不存在时是否需要匹配

替换方案 @ConditionalOnExpression

ConditionalOnExpression 可以通过SPEL表达式、读取配置文件属性来让IOC容器选择性的扫描加入指定的某个Bean。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值