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);
}
复制代码
相关推荐
小林学习编程42 分钟前
SpringBoot校园失物招领信息平台
java·spring boot·后端
愿你天黑有灯下雨有伞1 小时前
Spring Boot整合Kafka实战指南:从环境搭建到消息处理全解析
spring boot·kafka·linq
Clf丶忆笙2 小时前
SpringBoot异步处理@Async深度解析:从基础到高阶实战
spring boot
小马爱打代码3 小时前
面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
kafka·rabbitmq·rocketmq
Bruk.Liu3 小时前
Kafka、RabbitMQ 和 RocketMQ区别及上手难度
kafka·rabbitmq·rocketmq
柯南二号4 小时前
【后端】SpringBoot用CORS解决无法跨域访问的问题
java·spring boot·后端
帮帮志5 小时前
vue实现与后台springboot传递数据【传值/取值 Axios 】
前端·vue.js·spring boot
言小乔.6 小时前
202534 | KafKa简介+应用场景+集群搭建+快速入门
分布式·kafka
杨不易呀6 小时前
Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
spring boot·redis·高并发·分布式锁·java面试·quarkus
Moshow郑锴7 小时前
Spring Boot 3 + Undertow 服务器优化配置
服务器·spring boot·后端