首页 > 解决方案 > @EventListener 中的 SPEL 表达式

问题描述

以下代码示例取自 Spring 文档。我的问题是如何传递一个变量来代替“qux-”。我试过#{},${}。

@EventListener(condition = "event.listenerId.startsWith('qux-')")
    public void eventHandler(ListenerContainerIdleEvent event) {
        ...
    }

标签: spring-kafka

解决方案


在 Spring Boot 中使用 EL 时,您需要用 #{} 将整个表达式括起来,并且在内部,您必须使用 ${} 以便您可以从应用程序上下文中检索变量。所以在你的情况下,这应该工作:

@EventListener(condition = "#{'event.listenerId'.startsWith(${'myVariable'})}")


推荐阅读