spring-integration-kafka:KafkaProducerMessageHandler 结果的注解驱动处理?

spring-integration-kafka: Annotation-driven handling of KafkaProducerMessageHandler result?

有没有办法使用注解驱动代码来实现下面代码的行为?

@Bean
@ServiceActivator(inputChannel = "toKafka")
public MessageHandler handler() throws Exception {
    KafkaProducerMessageHandler<String, String> handler =
            new KafkaProducerMessageHandler<>(kafkaTemplate());
    handler.setTopicExpression(new LiteralExpression("someTopic"));
    handler.setMessageKeyExpression(new LiteralExpression("someKey"));
    handler.setSendSuccessChannel(success());
    handler.setSendFailureChannel(failure());
    return handler;
}

@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
    return new KafkaTemplate<>(producerFactory());
}

@Bean
public ProducerFactory<String, String> producerFactory() {
    Map<String, Object> props = new HashMap<>();
    props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, this.brokerAddress);
    // set more properties
    return new DefaultKafkaProducerFactory<>(props);
}

我可以使用 Spring 集成注释指定发送 success/failure 通道吗?

我希望在整个应用程序中尽可能保持一致的做事模式(例如,指定消息流),并且我喜欢 Spring 集成图(例如,如何通道已连接)当您使用 XML 或 Java 注释配置 Spring 集成应用程序时,IntelliJ 会自动生成。

否;这是不可能的,在使用 Java 配置时必须明确设置 success/failure 通道。

此配置特定于 Kafka 处理程序,@ServiceActivator 是所有类型消息处理程序的通用注释。