此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0spring-doc.cadn.net.cn

@KafkaListener属性修改

从版本 2.7.2 开始,您现在可以在创建容器之前以编程方式修改注释属性。 为此,请添加一个或多个KafkaListenerAnnotationBeanPostProcessor.AnnotationEnhancer添加到应用程序上下文中。AnnotationEnhancer是一个BiFunction<Map<String, Object>, AnnotatedElement, Map<String, Object>并且必须返回 attributes 的 Map。 属性值可以包含 SPEL 和/或属性占位符;在执行任何解析之前调用增强器。 如果存在多个增强器,并且它们实现Ordered,它们将按顺序调用。spring-doc.cadn.net.cn

AnnotationEnhancer必须声明 bean 定义static因为它们在应用程序上下文生命周期的早期就是必需的。

示例如下:spring-doc.cadn.net.cn

@Bean
public static AnnotationEnhancer groupIdEnhancer() {
    return (attrs, element) -> {
        attrs.put("groupId", attrs.get("id") + "." + (element instanceof Class
                ? ((Class<?>) element).getSimpleName()
                : ((Method) element).getDeclaringClass().getSimpleName()
                        +  "." + ((Method) element).getName()));
        return attrs;
    };
}