首页 > 解决方案 > 为什么 Spring Integration 中没有 @OutboundChannelAdapter 注解?

问题描述

1)我想创建一个HttpRequestExecutingMessageHandler(HTTP的出站通道适配器)的bean并通过@OutboundChannelAdapter之类的注释指定通道,为什么这是不可能的?我想有一些我不理解的设计决定。

2) 不使用 XML 配置文件定义 HttpRequestExecutingMessageHandler 的建议方法是什么?我是否必须配置 bean 并手动设置它?

提前致谢。

标签: spring-integration

解决方案


@ServiceActivator完全涵盖了该功能。不像@Transformer它不需要返回值。因此,您的 POJO 方法可以是公正的,并且流程将在 XML 配置中以void类似的方式停止。<outbound-channel-adapter>

但是如果HttpRequestExecutingMessageHandler我们需要担心一些额外的选项来使其单向并停在那里而不关心任何 HTTP 回复。

所以,HttpRequestExecutingMessageHandler你需要声明一个像这样的bean:

@Bean
@ServiceActivator(inputChannel = )
public HttpRequestExecutingMessageHandler httpRequestExecutingMessageHandler() {
    HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler();
    handler.setExpectReply(false)
    return handler;
}

我认为无论如何我们都需要改进有关此问题的文档,但您可以查看 Java DSL 配置:https ://docs.spring.io/spring-integration/docs/current/reference/html/#http-java -配置。有一个Http.outboundChannelAdapter()为了方便。


推荐阅读