Передайте поле конфигурации TOML в аннотацию Spring KafkaListener - PullRequest
0 голосов
/ 15 октября 2018

У меня есть файл toml, используемый для настройки приложения, которое использует аннотацию Spring Framework KafkaListener со следующей подписью:

@KafkaListener(id = "id0", topics = "some.hard.coded.topic.name")

У меня есть класс диспетчера конфигурации, который читает TOMLфайл и настраивает различные параметры приложения в зависимости от среды, в которой выполняется приложение. Одним из них является тема для прослушивания.Однако я не знаю, как я могу передать это аннотации Слушателя Кафки.Насколько я понимаю, это можно сделать с помощью SPEL в сочетании с файлами yml, но я как бы привязан к использованию TOML здесь.Кто-нибудь может посоветовать?

1 Ответ

0 голосов
/ 15 октября 2018

Свойство topics @KafkaListener действительно поддерживает SpEL, включая доступ BeanFactory, поэтому, если у вас есть какой-то bean-компонент, который читает этот файл TOML и представляет его в виде некоторого набора свойств времени выполнения, например, получателей, то вы определенноможет получить усиление SPEL там.Например:

topics = "#{myTomlService.getTopic()}"

, где myTomlService - имя компонента для упомянутой службы.

...