spring表达式获取文件大小?

时间:2013-02-04 08:16:43

标签: java spring spring-integration

我是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实现它?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您正在处理Message<File>,则在表达式中使用payload将引用File。您可以访问表达式中的任何File方法。如果文件不存在或为零长度,则以下将路由到outputChannelB,否则将outputChannelA

<int:router input-channel="inputChannel" expression="payload?.length() > 0 ? 'outputChannelA' : 'outputChannelB'" />

请注意使用“安全导航”操作符?.来确保无效安全。