注解属性kafkalistener.topics必须是数组初始值设定项或常量表达式

ibrsph3r  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(751)

我目前使用的是SpringKafkaAPI
我们目前有一个要求,动态添加一个后缀Kafka主题。试图修改并将其设置回注解“@kafkalistener”,如下所示-
@Kafka主义者(topics=modifiedtopics)
它给出了一个错误,即注解属性kafkalistener.topics的值必须是数组初始值设定项
或者我尝试下面的代码-(带花括号)
@Kafka主义者(主题={modifiedtopics})
我说的是错误的,注解属性kafkalistener.topics的值必须是一个常量表达式
有人在注解方面遇到过类似的问题吗?如果是,请帮忙!

avwztpqn

avwztpqn1#

解决方案是:将lambda添加到注解中的方法之一如下:在kafkareceiver类的方法中-

@Autowired
      TopicUtil                      topicUtil;

      @KafkaListener(topics = "#{topicUtil.suffixTopics()}")

      //In the TopicUtil - add the follwoing method

      public String[] suffixTopics() {
          return Arrays.asList(pTopics.split(",")).stream().map(p -> p + envSuffix).toArray(String[]::new);
      }

相关问题