クラス TransactionAwareProxyFactory<T>

java.lang.ObjectSE
org.springframework.batch.support.transaction.TransactionAwareProxyFactory<T>

public class TransactionAwareProxyFactory<T> extends ObjectSE

トランザクション対応オブジェクト(リスト、セット、マップなど)のファクトリ。ファクトリによって作成されたインスタンスでメソッドが呼び出されたときにトランザクションがアクティブである場合、トランザクションはターゲットオブジェクトのコピーを作成し、そのコピーに対してすべての操作を実行します。トランザクションがコミットした場合にのみ、コピーでターゲットが再初期化されます。

データベースを必要とせずにトランザクションの振る舞いをテストするためのコレクションやマップとうまく連携します。基本実装はリスト、セット、マップを処理します。サブクラスは、begin(Object) および commit(Object, Object) を実装して、他のリソースのサポートを提供できます。

通常、マルチスレッドでの使用は意図されていませんが、コレクションの append only version は、マップ内の異なるキーで動作するスレッドを分離します。(スレッドは、同じトランザクションで作成されたエントリの削除に制限されています。)

作成者:
Dave Syer
  • メソッドの詳細

    • begin

      protected final T begin(T target)
      トランザクション内で使用できるターゲットのコピーを作成して、変更を元のターゲットから分離します。渡された元の値からターゲットを分離するために、ファクトリコンストラクターからも呼び出されます。
      パラメーター:
      target - ターゲットオブジェクト (リスト、セット、マップ)
      戻り値:
      独立したコピー
    • commit

      protected void commit(T copy, T target)
      作業コピーの状態を取り、それを元のターゲットにコミットします。ターゲットは、トランザクション中にコピーに適用されたすべての変更を反映します。
      パラメーター:
      copy - 作業コピー。
      target - ファクトリの元のターゲット。
    • createTransactionalMap

      public static <K, V> MapSE<K,V> createTransactionalMap()
    • createTransactionalMap

      public static <K, V> MapSE<K,V> createTransactionalMap(MapSE<K,V> map)
    • createAppendOnlyTransactionalMap

      public static <K, V> ConcurrentMapSE<K,V> createAppendOnlyTransactionalMap()
    • createAppendOnlyTransactionalSet

      public static <T> SetSE<T> createAppendOnlyTransactionalSet()
    • createTransactionalSet

      public static <T> SetSE<T> createTransactionalSet()
    • createTransactionalSet

      public static <T> SetSE<T> createTransactionalSet(SetSE<T> set)
    • createAppendOnlyTransactionalList

      public static <T> ListSE<T> createAppendOnlyTransactionalList()
    • createTransactionalList

      public static <T> ListSE<T> createTransactionalList()
    • createTransactionalList

      public static <T> ListSE<T> createTransactionalList(ListSE<T> list)