Пример кода ниже взят из документации Spring. Мой вопрос заключается в том, как передать переменную вместо 'qux-'. Я пробовал # {}, $ {}.
@EventListener(condition = "event.listenerId.startsWith('qux-')") public void eventHandler(ListenerContainerIdleEvent event) { ... }
Это может быть сделано, но косвенно ...
@Bean String prefix(@Value("${foo:qux-}") String foo) { return foo; }
и
@EventListener(condition = "event.listenerId.startsWith(@prefix)")
Будет использоваться qux-, если нет свойства foo.
qux-
foo
При использовании EL с Spring Boot вам нужно заключить все выражение в # {}, а внутри, вы должны использовать $ {}, чтобы вы могли извлечь переменную из контекста приложения. Так что в вашем случае это должно работать:
@EventListener(condition = "#{'event.listenerId'.startsWith(${'myVariable'})}")