SpringBoot中使用@KafkaListener如何動態指定topic

背景:   在公司的SpringBoot項目中使用註解 @org.springframework.kafka.annotation.KafkaListener 的時候,kafka的topic可以使用註解中的topics屬性自行設定,但是問題是,公司在每個環境的topicName不一樣,項目的結構是SpringBoot在啓動的時候會讀取相應環境(int、uat、pro)的yml文件,所以現在的問題是需要在啓動的時候,根據環境變量的輸入來決定監聽哪個topic.

正常使用的方式可能是如下的樣子:

@KafkaListener(topics = "myTopic")
public void process(String content) {
    //TODO
}

那麼怎麼讓myTopic變成動態輸入的呢?

可以在yml配置文件中新增配置:  topicName:  defaultname

修改原先的代碼爲:  

@KafkaListener(topics = "${topicName}")
public void process(String content) {
    //TODO
}

這樣就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章