Spring集成:我们何时需要特定的出站或入站网关

时间:2016-08-25 12:46:36

标签: spring-integration

我对弹簧集成网关有疑问。 当我从文档http://docs.spring.io/spring-integration/reference/htmlsingle/#gateway中读到时,我们有一个通用网关。

因此,我无法理解为新集成构建任何特定出站或入站网关的原因。有没有具体的理由去开发自定义网关?

提前致谢 问候 格利扬

1 个答案:

答案 0 :(得分:1)

@MessagingGateway<gateway>)表示Messaging子系统的POJI适配器,您的原始代码不关心内部,只处理目标域。这是一种应用程序内集成。

当您需要与外部世界(或某些特定内部协议,例如Spring应用程序事件)进行交互时,您仍需要以某种方式使其适应您的Messaging子系统。为此,我们有inbound网关/适配器从外部系统/协议和outbound网关/适配器接收数据/事件/包/消息,以将消息转换为协议特定实体并发送到那里。

网关是双向请求/回复抽象。适配器只有单向:仅接收或仅发送。

您可以在EIP Book中找到一些网关说明。

Spring Integration中涵盖了大多数流行的协议,例如: HTTP,AMQP,JMS,WebSockets,JDBC,Mail等。

如果Spring Integration中存在所需的协议适配器实现,则需要自定义网关(入站或出站)。<​​/ p>

但是,是的,例如,不要在@MessagingGateway(入站)或HttpRequestHandlingMessagingGateway(出站)网关的简单界面上混用SftpMessageHandler