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);
}
复制代码
相关推荐
翘着二郎腿的程序猿20 分钟前
SpringBoot集成Knife4j/Swagger:接口文档自动生成,告别手写API文档
java·spring boot·后端
小鸡脚来咯21 分钟前
Spring Boot 常见面试题汇总
java·spring boot·后端
李白的粉22 分钟前
基于springboot的阿博图书馆管理系统
java·spring boot·后端·毕业设计·课程设计·源代码·图书馆管理系统
ren0491824 分钟前
Spring Framework、SpringBoot、Mybatis、Freemarker
spring boot·spring·mybatis
absunique25 分钟前
Spring boot 3.3.1 官方文档 中文
java·数据库·spring boot
召田最帅boy26 分钟前
Spring Boot博客系统集成AI智能摘要功能实战
人工智能·spring boot·后端
967727 分钟前
spring boot 终端运行指令以及这个查询端口是否被占用,以及释放端口的命令
java·spring boot·后端
拾贰_C38 分钟前
【idea | knife4j | springboot2/3|接上篇|终篇】knife4j版本号与spring boot版本不兼容问题(细节问题)
java·spring boot·intellij-idea
韩立学长39 分钟前
基于Springboot医疗健康管理系统6sp2oz07(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
HeartJoySpark1 小时前
Spring Boot 接入本地大模型:Spring AI 整合 Ollama 实现智能对话教程
人工智能·spring boot·spring·ai