8

Spring DSL で指定された次の述語の例を実装するにはどうすればよいですか。

Predicate isWidget = header("type").isEqualTo("widget");

from("jms:queue:order")
   .choice()
      .when(isWidget).to("bean:widgetOrder")
      .when(isWombat).to("bean:wombatOrder")
   .otherwise()
      .to("bean:miscOrder")
   .end();
4

3 に答える 3

6

このような:

<route>
  <from uri="jms:queue:order"/>
  <choice>
    <when>
       <simple>${header.type} == 'widget'</simple>
       <to uri="bean:widgetOrder"/>
    </when>
    <when>
      <simple>${header.type} == 'wombat'</simple>
      <to uri="bean:wombatOrder"/>
    </when>
    <otherwise>
      <to uri="bean:miscOrder"/>
    </otherwise>
  </choice>
</route>
于 2012-05-10T13:24:23.870 に答える
6

必要な単純な要素(受け入れられた回答を参照)は

<simple>${header.type} == 'widget'</simple>

フィールド式が ${} で囲まれ、その後に比較用の OGNL 構文が続くことに注意してください。これは、フィールド式自体の一部ではありません。

于 2012-09-01T04:02:15.293 に答える