SpringBoot中@KafkaListener使用${}动态指定topic问题
投稿:jingxian
在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); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。