Выражение SPEL в @EventListener - PullRequest
0 голосов
/ 17 апреля 2020

Пример кода ниже взят из документации Spring. Мой вопрос заключается в том, как передать переменную вместо 'qux-'. Я пробовал # {}, $ {}.

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

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Это может быть сделано, но косвенно ...

@Bean
String prefix(@Value("${foo:qux-}") String foo) {
    return foo;
}

и

@EventListener(condition = "event.listenerId.startsWith(@prefix)")

Будет использоваться qux-, если нет свойства foo.

0 голосов
/ 17 апреля 2020

При использовании EL с Spring Boot вам нужно заключить все выражение в # {}, а внутри, вы должны использовать $ {}, чтобы вы могли извлечь переменную из контекста приложения. Так что в вашем случае это должно работать:

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

...