Spring集成:将标题扩充器与通道适配器相关联

时间:2013-12-06 12:20:14

标签: spring-integration

在我的应用程序中,几个 jms:消息驱动通道适配器实例都输出到同一个内部通道。我想将一个不同的标题扩充器与每个通道适配器相关联。有没有办法做到这一点?

以下代码显示了如何将标头扩充器与jms:message-driven-channel-adapter输出到的内部通道相关联:

<jms:message-driven-channel-adapter id="J1" destination="Q1" channel="in1"/>
<int:header-enricher input-channel="in1" output-channel="out1">
     <int:header name="fromAdapter" value="1"/>
</int:header-enricher>

但是,这在我的场景中不起作用,其中所有通道适配器都使用相同的内部通道。能够在通道适配器内部定义头部增强器会很好。还有另一种方法可以将适配器和增强器连接在一起吗?

由于

1 个答案:

答案 0 :(得分:1)

不同的标题扩充器应该具有不同的输入通道。您可以提供一些路由逻辑,并使用<gateway>作为标题扩充器的请求 - 回复流程:

<chain input-channel="in1" output-channel="out1">
    <gateway request-channel="enrichement"/>
</chain>

<router input-channel="enrichement">
    <mapping channel="he1" value=""/>
    ...
</router>

<header-enricher input-channel="he1">
...
</header-enricher>

<header-enricher input-channel="he2">
...
</header-enricher>
....
<header-enricher input-channel="heN">
...
</header-enricher>

HTH