2016-06-17 4 views
0

いくつかのフローでは、DataWeaveから直接生成できないいくつかの出力属性(例:チェックサム)がありますので、Java関数を使用してそれらを計算することを選択しましたJavaコンポーネントとMule 3.7/3.8のグローバル関数

  • Javaコンポーネントを使用して、変数に結果を置くトランスクラスを使用して
  • クラスから静的メソッドを呼び出すグローバル関数を定義し、トランスフォームでそれを使用しますと、私たちはあまりにも可能性を持っていますメッセージコンポーネント

ガベージコレクションできないため、静的メソッドのパフォーマンスに問題があることは知っています。これら2つの選択肢の賛否両論は何ですか?

+0

なぜdatawevaeからの検索フローを使用しないのですか? –

答えて

0

私はそれが機能の複雑さに依存すると思います。 Javaでできることは、MVELをグローバル関数で直接使用することができます.Java静的メソッドを呼び出す必要はありません。

グローバル関数を使用する主な利点は、MEL/MVELを使用すると、プロパティナビゲーション、折りたたみ/投影などの便利なMVEL機能のために関数の冗長性が大幅に低下する可能性があり、Mule vars/props/payloadを#[flowVars。]のようにMELを使用して簡単に実行できます。

しかし、非常に複雑な機能の場合、Javaコンポーネントは可読性/保守性などの点でより簡単になります。また、Javaコンポーネントは他のプロジェクトとモジュール化して別々に共有する方が簡単です。

パフォーマンス上のメリットがあるものの、パフォーマンスの面でメリットがあるかもしれませんが、パフォーマンスを比較するためにプロファイリングできます。

関連する問題