我有一个@ConditionalOnExpression,它使用了我的application.properties中的属性。我希望@ConditionalOnExpression使用OR条件,以便在该属性中有三个不同的值存在时触发它。
@ConditionalOnExpression("'${env.name}'=='prod' or '${env.name}' == 'alsoProd'")
我似乎无法让这个工作。那么,甚至可以在@ConditionalOnExpression ??
中使用OR语句答案 0 :(得分:1)
Spring Expression Language(SpEL)允许定义列表。
当您两次比较相同的值时,您只需定义一个列表,然后检查环境名称是否在该列表中即可。
@ConditionalOnExpression("{'prod', 'alsoProd'}.contains('${env.name}')")
答案 1 :(得分:0)
试试这个
@ConditionalOnExpression("'${env.name}'=='prod'", "'${env.name}' == 'alsoProd'")
答案 2 :(得分:0)
您问题中的示例应正常运行,并且在Spring的文档https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions-operators-logical中有效。
您确定它不起作用吗?