【问题标题】:Spring Integration Message Routing By Type of Part of PayloadSpring Integration Message Routing by type of part of Payload
【发布时间】: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 为您完成了这些工作!保持她的稳定!

标签: spring-integration


【解决方案1】:

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

您只有一个组件 - router,并且没有任何 Java 代码行 - SpEL 为您代劳!让她稳住!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    相关资源
    最近更新 更多