1

カスタム メッセージ プロセッサをグローバルとローカルのどちらで使用するかについて質問があります。

すべてのカスタム トランスフォーマーをグローバル レベルで定義し、それらを Mule フローで参照しました。

フロー内で定義されたオブジェクトのスコープと、グローバルとして宣言されフローで参照されるオブジェクトのスコープの違いは何ですか?

メッセージ プロセッサが内部フローではなくグローバルとして定義されている場合、メモリに影響はありますか?

再利用性以外に、プロセッサをグローバルとして定義する利点はありますか?

Ex:  
Global Way of defining: 

<custom-transformer name="mycustom" class="org.MyClass" />  
<flow name="myflow">
    ...
    ...
    <transformer ref="mycustom" />
    ...
    ...
</flow>


Local Way of defining:
<flow name="myflow">
    ...
    ...
    <custom-transformer name="mycustom" class="org.MyClass" />
    ...
    ...
</flow>

この情報は、メモリとコードの保守性に関して最適なソリューションを設計するのに役立ちます。

4

1 に答える 1

2

ローカルで定義されたトランスフォーマーは、レジストリ内で異なる Bean として宣言されるため、それらをローカルで何度も宣言するには明らかにコストがかかります。

したがって、同様のトランスフォーマー (およびコンポーネント、メッセージ プロセッサなど) をグローバルに宣言することをお勧めします。

于 2013-03-29T19:01:49.067 に答える