栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Boot SpEL ConditionalOnExpression检查多个属性

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot SpEL ConditionalOnExpression检查多个属性

注释

@ConditionalOnProperty
和注释
@ConditionalOnexpression
都没有
java.lang.annotation.Repeatable
注释,因此您将不能仅添加多个注释来检查多个属性。

以下语法已经过测试并可以工作:

两种属性的解决方案

@ConditionalOnexpression("${properties.first.property.enable:true} && ${properties.second.property.startServer:false}")

请注意以下几点:

  • 您需要使用冒号来表示表达式语言语句中属性的默认值
  • 每个属性都在单独的表达语言块$ {}中
  • &&运算符在SpEL块之外使用

它允许具有不同值的多个属性,并且可以扩展到多个属性。

如果要检查两个以上的值并仍保持可读性,则可以在要评估的不同条件之间使用串联运算符:

超过2个属性的解决方案

@ConditionalOnexpression("${properties.first.property.enable:true} " +        "&& ${properties.second.property.enable:true} " +        "&& ${properties.third.property.enable:true}")

缺点是您不能像使用批注时那样使用matchIfMissing参数,

@ConditionalOnProperty
因此必须确保所有配置文件/环境的属性都存在于
.propertiesYAML 文件中,或者仅依赖默认值值



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号