当前位置:   article > 正文

@KafkaListener动态获取topics_kafkalistener动态码topic

kafkalistener动态码topic

KafkaListener监听kafka主题的时候,尝试了很多方法,例如:
第一种,通过$符号获取配置文件,该方式订阅失败,原因未知


@KafkaListener(topics = "${kafka.topics.workHourReporting}")

  • 1
  • 2
  • 3

第二种方式,通过@符号获取类中的变量,也订阅失败,原因是在KafkaListener中使用@获取类成员变量是不支持的


@Value("${kafka.topics.workHourReporting}")
private String workHourReportingTopic;
@KafkaListener(topics = "@HourKafkaConsumer.workHourReportingTopic")

  • 1
  • 2
  • 3
  • 4
  • 5

第三种方式,通过spring表达式语言(SpEL),订阅失败,这个一般适用于某些特定场景


@KafkaListener(topics = "#{__listener.workHourReportingTopic}")

  • 1
  • 2
  • 3

第四种方式,也是使用SpEL去动态解析,这种方式可以解析出多个主题,订阅成功


@KafkaListener(topics = {"#{'${kafka.topics.workHourReporting}'.split(',')}"})

  • 1
  • 2
  • 3

或者直接写死变量,也可以成功订阅


@KafkaListener(topics = "topic-test")

  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/846964
推荐阅读
相关标签
  

闽ICP备14008679号