1)我想创建一个HttpRequestExecutingMessageHandler(HTTP的出站通道适配器)的bean,并通过@OutboundChannelAdapter等注释指定通道,为什么这不可能?我想有一些我不理解的设计决定。
2)在不使用XML配置文件的情况下,定义HttpRequestExecutingMessageHandler的建议方法是什么?我是否必须配置bean并手动设置它?
提前致谢。
@ServiceActivator
完全涵盖了该功能。与@Transformer
不同,它不需要返回值。因此,您的POJO方法可能只是void
,并且流程将以类似的方式停止在<outbound-channel-adapter>
在XML配置中执行此操作。
但是在HttpRequestExecutingMessageHandler
的情况下,我们需要担心一些额外的选项,使其单向并停在那里而不关心任何HTTP回复。
因此,对于HttpRequestExecutingMessageHandler
,你需要声明一个像:
@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()
。