处理 SPEL 条件表达式时出错

Error processing SPEL conditional expression

我有一项服务,我正在尝试使用 @ConditionalOnExpression 添加条件表达式。 我的 属性 文件中有两个属性: module.enabled 其中包含一个布尔值 my.datasource 其中包含一个字符串。

我想要这样的东西: module.enable is true AND my.datasource is not empty

这是我迄今为止尝试过的方法: @ConditionalOnExpression("${my.datasource} != '' && ${module.enabled}")

但是我得到一个处理错误异常。

我做错了什么?

谢谢。

这样写就可以实现

@Configuration
@ConditionalOnProperty({"my.datasource", "module.enabled"})
@ConditionalOnExpression(value = "'${my.datasource}' != '' and ${module.enabled}")
class Config {
    // Rest of the code
}

确保你有 @ConditionalOnProperty({"my.datasource", "module.enabled"}) 如果你没有并且没有定义属性那么 SpEL 表达式将被错误地评估,你可能会得到 invalid expression exception