基于payload属性的java消息路由

时间:2014-07-22 16:30:29

标签: java spring routing java-8 spring-integration

我有一个对象,当前正被发送到一个服务以将对象发送到FTP。 我将得到一个应该发送给MQ的不同对象。 可以基于对象中称为format的属性来区分对象的类型。 FTP / MQ。

一个简单的if条件就足以将对象发送到不同的服务(FTP / MQ服务来完成它们的工作)。

但是,想知道这是正确的方法还是我应该使用弹簧路由机制?要做到这一点,我必须创建一个新的消息与有效负载作为我需要使用的对象,并可能覆盖路由(消息消息)并做一些事情,仍然弄清楚如何使用它。

你能否建议在我的案例中使用什么是好的方法,或者有什么更好的方法?

1 个答案:

答案 0 :(得分:2)

使用SI路由器,使用SpEL表达式应该非常简单。仅基于文档here并且不测试以下建议,这是我的方法:

<int:router input-channel="inChannel" expression="payload.format">
    <int:mapping value="FTP" channel="ftpChannel"/>
    <int:mapping value="MQ" channel="mqChannel"/>
</int:router>

其中有效负载是您的对象。