Spring Integration:将标头富集器与通道适配器相关联



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

下面的代码显示了如何将头富集器与jms:message驱动的通道适配器输出到的内部通道相关联:

<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>

然而,在我的场景中,这将不起作用,在该场景中,所有通道适配器都使用相同的内部通道。如果能够在通道适配器内部定义标头富集器,那就太好了。有没有其他方法可以将适配器和enricher连接在一起?

感谢

不同的标头富集器应该有不同的输入通道。您可以提供一些路由逻辑,并使用<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

最新更新