メタアノテーションとしての @KafkaListener 

バージョン 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";

}

topicstopicPatterntopicPartitions の少なくとも 1 つをエイリアス化する必要があります(通常、コンシューマーファクトリ構成で group.id を指定していない限り、id または groupId)。次の例は、その方法を示しています。

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