0

所以我是 Spring Integration 的新手,而且主要是 Spring 的新手,所以我可能不会掌握所有的术语,但我遇到了以下场景:

我有一个带有三个 SI 流的小型 Spring Integration 应用程序......每个流都有自己的网关,每个网关都有自己的请求通道和回复通道。这些流接收一个空调用(出于所有密集目的......基本上只是一个“GO”信号/空消息)并回复一个状态消息,具体取决于(微不足道的)业务逻辑结果。

我现在想将这些流中的每一个连接在一起,以便在一个“主流”中运行,给定一个请求,而不剥夺它们单独运行的能力,我想通过注释/XML(IE.给定一个调用主网关服务接口的控制器,不需要在注释/ XML 配置之外编写额外的代码。)

这是否可行,我应该使用哪些集成组件来做到这一点,和/或我是否应该只是调整每个网关的预期通道以端到端地相互会面(如果是这样,该策略将如何补偿以允许根据具体情况调用每个流)?

此外,如果这不可行,是否适合使用服务激活器来调用每个子流?我想避免更多地编码,但如果这是唯一的选择,我想它必须这样做。

谢谢!

4

1 回答 1

1

可能最简单的方法是使用 Spring Profiles(Spring 3.1 的一个特性)。当以独立模式部署时,最终元素可以是“通往无处的桥梁”......

<int:bridge input-channel="app1Final" />

...当流中的最后一个元素没有输出通道时,消息将返回到网关的回复通道。如果您更喜欢显式配置网桥以指向网关的回复通道,那也可以;它只是不需要。

在“链接”配置文件中,您可以这样配置网桥...

<int:bridge input-channel="app1Final" output-channel="app2Inbound"/>

...其中 app2Inbound 与该应用程序的网关的请求通道相同。

<beans profile="default">
    <int:bridge input-channel="app1Final" />
</beans>

<beans profile="linked">
    <int:bridge input-channel="app1Final" output-channel="app2Inbound"/>
</beans>

要使用链接的配置文件运行,请将系统属性“spring.profiles.active”设置为“链接”

于 2012-07-26T22:33:31.423 回答