2012-07-26 57 views
0

所以我是Spring Integration的新手,主要也是Spring,所以我可能没有掌握所有的术语,但我正在运行以下场景:扩展Spring集成,同时保持以前的功能?

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

我现在想将每个流程连接在一起,在给定一个请求的情况下运行在一个“主流程”中,而不会消除它们分开运行的能力,而且我想通过注释/ XML(IE。给定一个调用主网关服务接口的控制器,不需要在注释/ XML配置之外编写额外的代码)。

这是可行的,我应该使用什么集成组件来实现这一点,以及/或者我是否应该调整每个网关的预期渠道,以便彼此端到端会面(如果是这样,那么该策略如何补偿以允许每个流量按个别情况进行调用,个案基础)?

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

谢谢!

回答

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”到“链接”

+0

这会为我的目的,工作运行。谢谢! – LJ2 2012-07-31 13:17:11