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);
}
复制代码
相关推荐
bing_1585 分钟前
spring Boot 3.0 和2.0的区别
java·spring boot·后端
0xDevNull17 分钟前
Apache Kafka 完全指南
分布式·kafka
白宇横流学长40 分钟前
基于 SpringBoot 的社团活动报名管理系统设计与实现
java·spring boot·后端
w1225h40 分钟前
IDEA搭建SpringBoot,MyBatis,Mysql工程项目
spring boot·intellij-idea·mybatis
没有bug.的程序员1 小时前
Spring Boot 与 MyBatis-Plus 批量插入的生死狙击
java·spring boot·后端·mybatis·plus·批量插入
wenlonglanying1 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
智能工业品检测-奇妙智能1 小时前
开源Java绩效考核系统推荐
spring boot·国产化·国产数据库·openclaw·奇妙智能
小江的记录本1 小时前
【Java】Java核心关键字:final、static、volatile、synchronized、transient(附《面试高频考点》)
java·开发语言·spring boot·后端·sql·spring·面试
oyzz1202 小时前
SpringBoot最佳实践之 - 使用AOP记录操作日志
java·spring boot·后端
zjjsctcdl2 小时前
Spring Boot 经典九设计模式全览
java·spring boot·设计模式