【发布时间】:2013-12-31 12:20:24
【问题描述】:
我有这门课:
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>
【问题讨论】:
-
其实你的路由器看起来不错。
PayloadTypeRouter不适合您,因为您想确定有效负载某些部分的类型。在这种情况下,SpEL 是可以的。你有什么问题? -
您好,Artem,谢谢。它有效,但对我来说似乎并不好。我问这个是为了得到一些更好的想法。
-
别担心,没关系。您只有一个组件 - 路由器,没有任何 Java 代码行 - SpEL 为您完成了这些工作!保持她的稳定!