Mule サービスインジェクション

Mule サービスの使用

モジュールを実装する際には、Mule が提供するいくつかのサービスの使用が必要となる場合があります。これらのサービスとしては、​ObjectStoreManager​、​LockFactory​、​HttpService​ などがあります。

サービスを使用するには、​MuleContext​ のレジストリから取得する必要はありません。単に ​@Inject​ アノテーションを使用してコンポーネント (操作、ソース、設定など) に挿入するだけです。

レジストリのサービスをコンポーネントに挿入するシンプルな例を示します。

例: @Inject アノテーションの使用
public class ObjectStoreOperations {
// ...
  @Inject
  private ObjectStoreManager runtimeObjectStoreManager;
// ...
  @Throws(StoreErrorTypeProvider.class)
  public void store(String key,
                  @Content TypedValue<Serializable> value,
                  @Optional @ParameterDsl(allowInlineDefinition = false) ObjectStore objectStore) {
    ObjectStore os = objectStore == null ? runtimeObjectStoreManager.getDefaultPartition() : objectStore;
    os.store(key, value);
  }
// ...
}

一般的な Mule サービスをいくつか紹介します。

  • LockFactory​: 共有データにアクセスするために同期が必要なすべての Mule コンポーネントは、このインターフェースのデフォルト実装からロックを使用して同期する必要があります。​LockFactory​ の詳細は、​「分散ロッキング」​を参照してください。

  • ExpressionManager​: XML、Java、スクリプト、アノテーションなど、Mule 設定に組み込まれた式を評価するためのユニバーサルアクセスを提供します。

  • TransformationService​: 値を別の指定された型に変換するためのサービスです。

  • HttpService​: HTTP のサーバー実装とクライアント実装の両方を提供します。コネクタで HTTP 接続を使用する場合は、このサービスの使用を試行する必要があります。

  • SchedulerService​: Mule Runtime に存在する異なるスケジューラーとスレッドプールへのアクセスを提供し、タスクをスケジュールできるようにします。

  • SoapService​: SOAP サービスをコンシュームする SOAP クライアントを作成するサービスです。

  • ObjectStoreManager​: ObjectStore​ インスタンスの作成と管理を担当するマネージャーです。