1)我想创建一个HttpRequestExecutingMessageHandler(用于HTTP的出站通道适配器)的bean,并通过@OutboundChannelAdapter之类的注释指定该通道,为什么不能这样做?我想有一些我不理解的设计决定。
2)不使用XML配置文件定义HttpRequestExecutingMessageHandler的建议方法是什么?我必须配置Bean并手动进行设置吗?
谢谢。
答案 0 :(得分:2)
@ServiceActivator
完全涵盖了该功能。与@Transformer
不同,它不需要返回值。因此,您的POJO方法可以只是void
,并且流程将以类似<outbound-channel-adapter>
的方式在XML配置中停止。
但是对于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-config。为方便起见,有Http.outboundChannelAdapter()
。