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);
}
复制代码
相关推荐
心之伊始32 分钟前
Spring Boot Actuator + Micrometer 实战:自定义业务指标并接入 Prometheus 观测接口耗时
java·spring boot·prometheus·actuator·micrometer
我登哥MVP1 小时前
走进 Gang of Four 设计模式:装饰器模式
java·spring boot·设计模式·装饰器模式
invicinble1 小时前
关于springsecurity技术栈,逻辑概念的总结
spring boot
java1234_小锋2 小时前
Spring Boot 中 Starter 是什么?它的核心规范有哪些?请说明如何自定义一个 Starter。
java·spring boot·后端
至乐活着2 小时前
Redis缓存设计模式深度实战:击穿、穿透、雪崩及一致性终极方案
spring boot·redis·缓存穿透·缓存雪崩·缓存设计
爱码少年3 小时前
Spring Boot 文件上传下载完整指南:从基础到高级实践
java·spring boot
Flittly3 小时前
【AgentScope Java新手村系列】(7)子Agent编排
java·spring boot·笔记·spring·ai
java1234_小锋3 小时前
Spring Boot 的核心注解 @SpringBootApplication 由哪三个注解组成?
java·spring boot·后端
Master_Azur3 小时前
Web后端基础-Spring分层解耦
spring boot·后端·spring
心之伊始4 小时前
Spring AI Structured Output 实战:把大模型返回稳定转成 Java DTO
java·spring boot·大模型·spring ai·structured output