java - 动态调用 Spring Integration 变压器

标签 java spring spring-mvc dependency-injection spring-integration

我是 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/

相关文章:

Java processbuilder 运行 cygiwn 命令

java - Spring Boot Security XML 与 CSRF 的 WebSecurityConfigurerAdapter

java - <form :input > to map with object attribute in spring 中路径的动态值

spring-mvc - Spring MVC application.properties 未被配置文件 application-dev.properties 覆盖

java - 使用 spring 创建通用 Controller

twitter-bootstrap - 如何在 thymeleaf th :attr 中转义特殊字符 '#'

Java 11 HttpClient 不允许 header 以冒号开头

java - 如何在 IntelliJ 中禁用代码完成弹出窗口的 "dimming"?

java - Apache POI getStringCellValue() 打印 null

spring - @ControllerAdvice 不工作 Spring 5.1.6