在保持以前的功能的同时扩展Spring集成?

时间:2012-07-26 20:39:40

标签: spring spring-integration enterprise-integration

所以我是Spring Integration的新手,主要是Spring,所以我可能没有完全掌握所有术语,但是我遇到了以下情况:

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

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

这是可行的,我应该使用什么集成组件,和/或我应该只调整每个网关的预期通道,以便端到端地相互会面(如果是,如何那个策略会补偿以允许逐个调用每个流程吗?

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

谢谢!

1 个答案:

答案 0 :(得分: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”设置为“linked”