@KafkaListener 方法不适用于 spring @Profile 注释

@KafkaListener method not work with spring @Profile annotation

我有 2 个 @KafkaListener 方法监听同一个 tipic TopicA,

但它们也被注释为不同的@Profile("dev") 和@Profile("prod"),

我设置了spring.profiles.active=dev,并且发送消息到TopicA,两种方法都可以消费消息。

这是@KafkaListener 和@Profile 的已知错误吗?还是我的配置有问题?

没错,因为 @KafkaListener 没有提供 bean。 @Profile 只能限制 beans - @Configuration 类 或扫描的 @Service 中的工厂方法:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-definition-profiles-java

所以,您需要的是将这些方法分配到不同的 类 并将 @Profile 移动到它们的 bean 定义级别。