我是Spring集成的新手。我在网上看到了以下示例。
<int:router input-channel="inChannel" expression="payload.paymentType">
<int:mapping value="CASH" channel="cashPaymentChannel"/>
<int:mapping value="CREDIT" channel="authorizePaymentChannel"/>
<int:mapping value="DEBIT" channel="authorizePaymentChannel"/>
</int:router>
类似于上面的逻辑,我的要求是如果有效载荷lenggh为零,那么它应该映射到一个信道,如果有效载荷大小超过1,那么它应该被定向到不同的信道。如何使用SpEL实现它?
谢谢!
答案 0 :(得分:0)
如果您正在处理Message<File>
,则在表达式中使用payload
将引用File
。您可以访问表达式中的任何File
方法。如果文件不存在或为零长度,则以下将路由到outputChannelB
,否则将outputChannelA
:
<int:router input-channel="inputChannel" expression="payload?.length() > 0 ? 'outputChannelA' : 'outputChannelB'" />
请注意使用“安全导航”操作符?.
来确保无效安全。