ApacheCamel-エンドポイント

統合コードでエンドポイントがどのように表示されるかについて学習しました。これまで使用してきた表現などfile:/order, jms:orderQueue, direct:distributeOrderDSLエンドポイントです。ご覧のとおり、これらはURI仕様形式に従います。このURIを評価している間、CamelContext を作成します Endpointインスタンス; インスタンス化について心配する必要はありませんEndpoint DSLでの実装。

前の例では、JavaDSLでエンドポイントを次のように指定します-

from ("file:/order").to("jms:orderQueue");

そして春にはここに-

<route>
   <from uri = "file:/order"/>
   <to uri = "jms:orderQueue"/>
</route>

どちらの場合も、エンドポイントは定数文字列です。場合によっては、実行時にこの文字列を作成したいことがあります。Javaを使用してこれを行うことができますStringフォーマッタメソッド。Camelは、実行時にこれらのURI文字列を作成するためのもう1つの簡単なアプローチを提供します。この目的のために、キャメルは提供しますfromF そして toFユーザー指定のパラメーターを持つ引数を受け入れるメソッド。次のステートメントは、toF 方法−

from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);

これらのメソッドのため、Java組み込みを使用する必要があります String フォーマッタメソッドは不要です。

Camelは、デフォルトでSimple言語を使用してエンドポイント式を計算します。ザ・Simple 言語は主に評価するために設計されました Expressions そして Predicatesの複雑さについてあまり気にせずに XPath。述語を評価するために、次のような別の言語を組み合わせることができます。xpath デフォルトで Simple言語。これは、プラス記号を使用して他の言語を区切ることによって行われます。ここのコードスニペットは、連結する方法を示していますxpath で書かれた式への文字列 Simple

from("direct:start")
.toD("jms:${orderQueue}+language:xpath:/order/@id");

Spring、ここと同じことを達成できます-

<route>
   <from uri = "direct:start"/>
   <toD uri = "jms:${orderQueue}+language:xpath:/order/@id"/>
</route>

必要な数の言語を連結できます。各言語は、前の言語とはプラス記号で区切られています。サポートされている言語のリストはここにあります。