我有一个对象,当前正被发送到一个服务以将对象发送到FTP。 我将得到一个应该发送给MQ的不同对象。 可以基于对象中称为format的属性来区分对象的类型。 FTP / MQ。
一个简单的if条件就足以将对象发送到不同的服务(FTP / MQ服务来完成它们的工作)。
但是,想知道这是正确的方法还是我应该使用弹簧路由机制?要做到这一点,我必须创建一个新的消息与有效负载作为我需要使用的对象,并可能覆盖路由(消息消息)并做一些事情,仍然弄清楚如何使用它。
你能否建议在我的案例中使用什么是好的方法,或者有什么更好的方法?
答案 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>
其中有效负载是您的对象。