按负载部分类型的Spring集成消息路由

时间:2013-12-31 12:20:25

标签: spring-integration

我是这堂课:

public interface ProcessMessage<T extends ProcessData, C, D> {
    T getProcessData();
    C getOperation();
    D getDetail();
}

我在频道之间流传着这条消息。在某些时候,我需要使用基于processData字段类型的路由器。 我有一些实现ProcessData接口的具体类,我需要将ProcessMessage实例路由到某个通道。

我已经实现了类似下面的内容,但如果有更好的解决方案,我会很高兴听到。

<int:router input-channel="processMilestonePassChannel" expression="payload.processData.class.name">
    <int:mapping value="some.pkg.XProcessData" channel="channelX"/>
    <int:mapping value="some.pkg.YProcessData" channel="channelY"/>
</int:router>

1 个答案:

答案 0 :(得分:0)

实际上,你的路由器看起来不错。 PayloadTypeRouter不适合您,因为您想要确定payload某些部分的类型。在这种情况下SpEL没问题。

你只有一个组件 - router,并且没有任何Java代码行--SpEL为你做的事情!让她保持稳定!