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);
}
复制代码
相关推荐
2501_941623321 小时前
边缘计算与工业AI:引领企业数字化新潮流
kafka
2501_941089191 小时前
边缘计算与云计算的融合:打造下一代智能网络基础架构
kafka
源码梦想家1 小时前
如何从零开始构建高效的云原生应用架构:从容器到微服务的实践与思考
kafka
踏浪无痕2 小时前
Nacos 配置刷新踩坑:复杂嵌套 Map 为什么刷不上?
spring boot·微服务
w***48822 小时前
Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程
java·spring boot·后端
后端小张3 小时前
【JAVA 进阶】Spring Cloud 微服务全栈实践:从认知到落地
java·开发语言·spring boot·spring·spring cloud·微服务·原理
李昊哲小课3 小时前
SSM框架完整教程
spring boot·spring·spring cloud
MC丶科3 小时前
Spring Boot + RabbitMQ 实现异步消息处理(订单通知、邮件发送)!告别同步阻塞“噩梦”
spring boot·rabbitmq·java-rabbitmq
y***61318 小时前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
Filotimo_12 小时前
SpringBoot3整合Druid数据源
java·spring boot