小编Cod*_*ool的帖子

如何将动态主题名称从环境变量传递给@KafkaListener(topics)

我正在写一个 Kafka 消费者。我需要将环境变量主题名称传递给@KafkaListener(topics = ...). 这是我迄今为止尝试过的:

 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.kafka.annotation.KafkaListener; 
 import org.springframework.stereotype.Service;

 @Service
 public class KafkaConsumer {

     @Autowired
     private EnvProperties envProperties;

     private final String topic = envProperties.getTopic();

     @KafkaListener(topics = "#{'${envProperties.getTopic()}'}", groupId = "group_id")
     public void consume(String message) {
        logger.info("Consuming messages " +envProperties.getTopic());
     }
}
Run Code Online (Sandbox Code Playgroud)

我在线路上遇到错误topics = "#{'${envProperties.getTopic()}'}",应用程序无法启动。

如何从环境变量动态设置此主题名称?

java spring-el spring-boot kafka-consumer-api spring-kafka

9
推荐指数
1
解决办法
3357
查看次数