这个版本仍在开发中,目前尚未被认为是稳定的。要使用最新稳定版本,请使用 Spring for Apache Kafka 4.0.4spring-doc.cadn.net.cn

@KafkaListener 属性修改

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

AnnotationEnhancer 需要声明 static 个 bean 定义,因为它们在应用程序上下文生命周期的非常早期阶段是必需的。

一个示例如下: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;
    };
}