我是 Spring 集成新手,正在从事 SI 项目。我正在做一项简单的工作,从 channel (fromAdapter)获取消息,调用转换器并将输出发送到另一个 channel (toQueue)。 SI配置文件中使用了以下代码----
<int:channel id="fromAdapter"></int:channel>
<int:channel id="toQueue">
</int:channel>
<bean id="trans" class="src.MyTransformer"></bean>
<int:transformer input-channel="fromAdapter" output-channel="toQueue" ref="trans"></int:transformer>
但是,现在我有一个稍微复杂的需求。我不想总是根据消息的某些值将消息发送到一个变压器,而是想将消息发送到 6 个变压器中的任何一个。如何实现?
最佳答案
收件人列表路由器将起作用,并且如果您想将消息发送到多个转换器,则可能是合适的,但如果不是,则必须小心使选择器表达式互斥。也许更简单的路由器之一可能更合适。例如...
<header-value-router input-channel="routingChannel" header-name="foo">
<mapping value="1" channel="channel1" />
<mapping value="2" channel="channel2" />
</header-value-router>
或
<router id="spelRouter" input-channel="expressionRouter"
expression="payload.someProperty"
default-output-channel="defaultChannelForExpression"
resolution-required="false">
<mapping value="foo" channel="fooChannelForExpression"/>
<mapping value="bar" channel="barChannelForExpression"/>
</router>
关于java - 动态调用 Spring Integration 变压器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14192063/