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

项目场景:

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


解决方案:

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

java 复制代码
# application.properties
kafka.topic=myTopic

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

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

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

java 复制代码
# application.properties
kafka.topics=topic1;topic2;topic3

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

java 复制代码
@KafkaListener(topics = "${kafka.topics}")
public void listen(String message) {
    System.out.println("Received message in topic : " + message);
}
复制代码
相关推荐
360智汇云10 分钟前
360 智汇云 Kafka 云原生架构演进
云原生·架构·kafka
xianjian091213 分钟前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
拾荒的小海螺14 分钟前
JAVA:Spring Boot3 集成 Spring AI 实现 Prompt 提示词工程
java·spring boot·spring
小旭952714 分钟前
SpringBoot 整合 MyBatis 与自动配置原理详解
java·spring boot·后端·spring·intellij-idea·mybatis
AI服务老曹17 分钟前
源码级解耦:基于 Spring Boot/Vue 的 AI 视频平台二次开发指南与私有化部署实践
vue.js·人工智能·spring boot
weixin_4250230023 分钟前
Spring Boot 2.7 + JDK 8 实现 WebSocket 集群分布式部署(基于 Redis Pub/Sub 方案)
java·spring boot·websocket
高级盘丝洞23 分钟前
Spring Boot 使用 WebServiceTemplate 调用 WebService 完整教程
java·spring boot·后端
YDS8299 小时前
黑马点评 —— 分布式锁详解加源码剖析
java·spring boot·redis·分布式
zihao_tom10 小时前
Spring Boot(快速上手)
java·spring boot·后端
jessecyj12 小时前
SpringBoot详解
java·spring boot·后端