Spring Boot SpEL ConditionalOnExpression 检查多个属性
2022-09-03 18:15:03
问题:
如何使用Spring表达式语言来检查2个布尔属性是否为真?
例如,检查单个属性是否为 true 将使用以下语法:
例
@ConditionalOnExpression("${property.from.properties.file}")
检查的语法是什么?其中,属性可能具有不同的值。property1 == true && property2 == false
类似问题的答案:如何在使用@ConditionalOnProperty或@ConditionalOnExpression时检查两个条件将两个字符串连接在一起并执行如下检查:
串联解决方案
@ConditionalOnExpression("'${com.property1}${com.property2}'=='value1value2'")
对于阅读该代码的人来说,这种语法似乎令人困惑,这似乎是一个黑客解决方案。在某些边缘情况下,解决方案也会失败。我想找到检查两个单独属性而不连接值的正确方法。
注意:同样需要明确的是,答案不是您可以从我所看到的内容中轻松搜索到的。这似乎是一个非常简单的答案,但事实证明它是相当难以捉摸的。