1

我是 Spring Integration 的新手,我对一个问题感到困惑,我有多个渠道,但现在我想将这些渠道中的消息组装到单个渠道中,如何实现它?我的情景是我有很多业务模式,每个模块将对应一个通道,这些通道将接收请求然后将消息组装到一个通道中,然后输出到 jms 服务器:

下面的代码可能吗?

<channel id='a'/> <bridge input-channel='a' out-channel='assembled'/>
<channel id='b'/> <bridge input-channel='b' out-channel='assembled'/>
<channel id='b'/> <bridge input-channel='c' out-channel='assembled'/>
<channel id='c'/> <bridge input-channel='d' out-channel='assembled'/>

<channel id='assembled'/>

<!-- the router will desicde which jms gateway to be sent  -->
<router input-channel='assembled' > 

<channel id='to_jms1'/>
<channel id='to_jms2'/>

<jms-outbound-gateway id='jms1' channel='to_jms1'/>
<jms-outbound-gateway id='jms2' channel='to_jms2'/>
4

1 回答 1

1

如果您的意思是要将到达 a、b、c 等的每个单独的消息发送到同一个频道,那么您上面的内容将起作用。

如果您想将 a、b、c、d 上的消息合并为一条消息,则在桥接之后,使用<aggregator/>具有适当关联和释放策略的 an。

有关详细信息,请参阅参考文档

于 2013-09-01T13:22:58.707 回答