为什么Spring Integration中没有@OutboundChannelAdapter注释?

问题描述 投票:1回答:1

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

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

提前致谢。

spring-integration
1个回答
2
投票

@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()

© www.soinside.com 2019 - 2024. All rights reserved.