首页 文章

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

提问于
浏览
0

在我的应用程序中,几个 jms:message-driven-channel-adapter 实例都输出到同一个内部通道 . 我想将不同的 header-enricher 与每个通道适配器关联起来 . 有没有办法做到这一点?

以下代码显示如何将标头扩充器与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 回答

  • 1

    不管怎样,不同的 Headers 扩充器应该有不同的 input-channels . 您可以提供一些路由逻辑,并使用 <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

相关问题