spring-integration - 为什么 Spring Integration 中没有 @OutboundChannelAdapter 注解?
问题描述
1)我想创建一个HttpRequestExecutingMessageHandler(HTTP的出站通道适配器)的bean并通过@OutboundChannelAdapter之类的注释指定通道,为什么这是不可能的?我想有一些我不理解的设计决定。
2) 不使用 XML 配置文件定义 HttpRequestExecutingMessageHandler 的建议方法是什么?我是否必须配置 bean 并手动设置它?
提前致谢。
解决方案
@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()
为了方便。