相关疑难解决方法(0)

如何在使用@ConditionalOnProperty或@ConditionalOnExpression时检查两个条件

在创建bean时,我需要检查YAML属性文件是否满足两个条件.我该怎么做,因为@ConditionalOnProperty注释只支持一个属性?

spring-boot netflix-eureka spring-cloud-netflix

15
推荐指数
4
解决办法
2万
查看次数

Spring Boot SpEL ConditionalOnExpression检查多个属性

题:

如何使用Spring Expression Language检查2个布尔属性是否为真?

例如,检查单个属性是否为true将使用以下语法:

@ConditionalOnExpression("${property.from.properties.file}")
Run Code Online (Sandbox Code Playgroud)

检查的语法是property1 == true && property2 == false什么?属性可能具有不同的值.

来自类似问题的答案:如何在使用@ConditionalOnProperty或@ConditionalOnExpression时将两个字符串连接在一起并执行检查,如下所示:

连接解决方​​案

@ConditionalOnExpression("'${com.property1}${com.property2}'=='value1value2'")
Run Code Online (Sandbox Code Playgroud)

对于那些阅读该代码的人来说,这种语法似乎令人困惑,这似乎是一个hacky解决方案.有一些边缘情况解决方案也会失败.我想找到检查两个单独属性而不连接值的正确方法.

注意: 同样要清楚,答案不是你可以从我看到的内容中轻松搜索到的.这似乎是一个非常简单的答案,但事实证明这是相当难以捉摸的.

java spring spring-el spring-boot

10
推荐指数
2
解决办法
2万
查看次数