【问题标题】:service activator acting as outbound gateway for invoking bean method服务激活器充当调用 bean 方法的出站网关
【发布时间】:2016-07-18 04:46:21
【问题描述】:
我是 Spring 集成的新手,正在研究服务激活器的定义。定义说是用来call a method and wrap the result in the response message. 定义还说是outbound gateway for invoking the bean method. 第二个说法我不清楚。据我了解,出站网关是将请求从应用程序发送到外部应用程序并将响应返回到应用程序。所以,如果一个 bean 被调用,它会在应用程序中被调用,因此它应该是入站网关的权利。请让我知道我错在哪里。
【问题讨论】:
标签:
spring
spring-integration
【解决方案1】:
有两种类型的集成 - 使用各种协议与外部系统集成,以及使用方法调用与遗留 Java 代码集成。
其中,有单向集成(由通道适配器提供)和双向集成(请求/响应,由网关提供)。在每种情况下,集成都可以入站到消息流,也可以从消息流出站。
<int: .../> 命名空间提供入站和出站通道适配器,用于从消息流调用遗留代码,在后一种情况下(出站),方法返回类型必须为 null。您也可以使用服务激活器调用相同的方法,但首选通道适配器,因为很明显它是一种单向集成。
在入站端,提供了消息传递网关 (<int:gateway/>) 以允许遗留 Java 代码与消息流交互(“调用”它)而无需任何特定依赖项。
没有用于调用方法的<int:outbound-gateway/>,因为服务激活器提供了该功能。
如果您可以向我们指出导致混乱的文档,我们可以尝试改进它;请打开documentation JIRA issue。