0

私は春の統合が初めてです。私はウェブ上で以下の例を見てきました。

<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>

上記のロジックと同様に、私の要件は、ペイロードの長さがゼロの場合は 1 つのチャネルにマップする必要があり、ペイロード サイズが複数の場合は別のチャネルに送信する必要があります。SpEL を使用してどのように達成できますか?

ありがとう!

4

1 に答える 1

0

を扱っている場合、式Message<File>で を使用payloadすると、 が参照されますFileFile式で の任意のメソッドにアクセスできます。outputChannelBファイルが存在しない場合、または長さがゼロの場合、またはoutputChannelAそれ以外の場合は、次のようにルーティングされます。

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

?.null 安全のために「safe-navigation」演算子を使用していることに注意してください。

于 2013-02-04T15:20:36.467 に答える