1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot中@KafkaListener使用${}动态指定topic

Spring Boot中@KafkaListener使用${}动态指定topic

  • 发布于 2024-08-16
  • 0 次阅读

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

项目场景:

在 Spring Kafka 中,我们可以使用${}来引用 Spring 的属性配置。这样我们就可以在不同的环境中重新配置 topic 名称,而不需要修改代码。

解决方案:

在 application.properties 或 application.yml 中定义 topic 名称:

# application.properties
kafka.topic=myTopic

然后在你的代码中使用${}来引用这个属性:

@KafkaListener(topics = "${kafka.topic}")
public void listen(String message) {
    System.out.println("Received message in topic : " + message);
}

如果你使用的是多个 topic,你可以使用;来分割多个 topic 名称: 

# application.properties
kafka.topics=topic1;topic2;topic3

然后在你的代码中使用${}来引用这个属性:

@KafkaListener(topics = "${kafka.topics}")
public void listen(String message) {
    System.out.println("Received message in topic : " + message);
}