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
是所有类型消息处理程序的通用注释。
有没有办法使用注解驱动代码来实现下面代码的行为?
@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
是所有类型消息处理程序的通用注释。