Как получить названия топиков из конфигурации для аннотации 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, и передать в аннотацию список значений под этим ключом?


Ответы (0 шт):