SpringBoot中@KafkaListener使用${}动态指定topic问题
更新时间:2024年12月12日 14:22:47 作者:涛哥是个大帅比
在SpringKafka中,使用${}引用Spring属性配置,可以在不同环境中重新配置topic名称,而无需修改代码,在application.properties或application.yml中定义topic名称,并在代码中使用${}引用
项目场景
在Spring Kafka中,我们可以使用${}来引用Spring的属性配置。
这样我们就可以在不同的环境中重新配置topic名称,而不需要修改代码。
解决方案
- 在application.properties或application.yml中定义topic名称:
# application.properties kafka.topic=myTopic
- 然后在你的代码中使用
${}来引用这个属性:
@KafkaListener(topics = "${kafka.topic}")
public void listen(String message) {
System.out.println("Received message in topic : " + message);
}- 如果你使用的是多个topic
- 你可以使用
;来分割多个topic名称:
# application.properties kafka.topics=topic1;topic2;topic3
- 然后在你的代码中使用
${}来引用这个属性:
@KafkaListener(topics = "${kafka.topics}")
public void listen(String message) {
System.out.println("Received message in topic : " + message);
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot可执行jar包中使用自定义字符集失败问题的原因及解决方案
这篇文章主要介绍了Spring Boot fatjar部署时,因类加载器双亲委托模型与SPI机制冲突导致自定义字符集无法加载的问题,解决方案是修改代码使用当前线程类加载器或调整JVM参数,确保字符集实现被正确识别,需要的朋友可以参考下2025-07-07
SpringBoot @PostConstruct原理用法解析
这篇文章主要介绍了SpringBoot @PostConstruct原理用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-08-08
Spring MVC 拦截器 interceptor 用法详解
这篇文章主要介绍了Spring MVC 拦截器 interceptor 用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07
AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析
AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧2022-03-03
Java Swing实现JTable检测单元格数据变更事件的方法示例
这篇文章主要介绍了Java Swing实现JTable检测单元格数据变更事件的方法,结合完整实例形式分析了Swing实现JTable检测单元格数据变更事件过程中出现的问题与相关解决方法,需要的朋友可以参考下2017-11-11


最新评论