我是这堂课:
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>
答案 0 :(得分:0)
实际上,你的路由器看起来不错。 PayloadTypeRouter
不适合您,因为您想要确定payload
某些部分的类型。在这种情况下SpEL没问题。
你只有一个组件 - router
,并且没有任何Java代码行--SpEL为你做的事情!让她保持稳定!