【发布时间】:2019-05-31 00:35:41
【问题描述】:
我正在编写一个 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());
}
}
topics = "#{'${envProperties.getTopic()}'}" 行出现错误,应用程序无法启动。
如何从环境变量中动态设置这个主题名称?
【问题讨论】:
标签: java spring-boot kafka-consumer-api spring-kafka spring-el