You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个@ConditionalOnProperty注解中配置两个控制Bean加载的属性条件

@ConditionalOnProperty 多条件匹配实现方案

结论

可以通过单个@ConditionalOnProperty注解实现需求,无需额外组合其他条件注解。

实现原理

Spring Boot 提供的@ConditionalOnProperty注解的name属性支持传入字符串数组,可同时指定多个配置项校验规则,默认所有配置项均匹配指定值时,条件才会生效,刚好匹配需要同时满足两个条件的场景。

可运行示例代码

Bean类定义

@RestController
@RequestMapping("/blablabla")
@ConditionalOnProperty(name = {"my.property.value1.enabled", "my.property.value2"}, havingValue = "true")
public class MyBean {}

对应application.yml配置

my:
  property:
    value1:
      # 第一个判断条件,必须为true
      enabled: true
    # 第二个判断条件,必须为true
    value2: true

注意事项

  • 上述写法默认两个配置项都必须存在且值为true才会加载MyBean,如果缺少任意一个配置、或者任意一个配置值不为true,该Bean都不会被Spring容器加载
  • 如果后续需求调整为两个配置项的期望值不同,无法通过单个@ConditionalOnProperty实现,需要使用@ConditionalOnProperties组合多个@ConditionalOnProperty注解

内容的提问来源于stack exchange,提问作者Hayk Mkhitaryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:48:01