Как получить названия топиков из конфигурации для аннотации KafkaListener?
В Spring boot сервисе мне нужно добавить метод который читает несколько Kafka топиков, при этом взяв их из конфигурации. Как я понимаю, для таких случаем можно использовать yaml-списки:
kafka:
bootstrap-servers: localhost:9092
group-id: my-group
topics:
- topic1
- topic2
Слушатель:
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
@Component
public class MyKafkaListener {
@KafkaListener(topics = "${kafka.topics}")
public void listen(ConsumerRecord<String, String> record) {
...
}
}
Но у меня в topics не список топиков, а список словарей:
kafka:
bootstrap-servers: localhost:9092
group-id: my-group
topics:
- topic: "topic1"
enable: "true"
key: "value"
- topic: "topic2"
...
Возможно ли получить доступ до значений под ключом topic в аннотации KafkaListener, и передать в аннотацию список значений под этим ключом?