跳到主要内容
版本:4.1.1

将 @KafkaListener 用作元注解

Doubao 中英对照 @KafkaListener as a Meta Annotation

从版本 2.2 开始,你现在可以将 @KafkaListener 用作元注解。以下示例展示了如何这样做:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@KafkaListener
public @interface MyThreeConsumersListener {

@AliasFor(annotation = KafkaListener.class, attribute = "id")
String id();

@AliasFor(annotation = KafkaListener.class, attribute = "topics")
String[] topics();

@AliasFor(annotation = KafkaListener.class, attribute = "concurrency")
String concurrency() default "3";

}

你必须为 topics、topicPattern 或 topicPartitions 中的至少一个配置别名(并且通常还要为 id 或 groupId 配置别名,除非你已在 consumer 工厂配置中指定了 group.id)。以下示例展示了如何这样做:

@MyThreeConsumersListener(id = "my.group", topics = "my.topic")
public void listen1(String in) {
...
}