クラス TransactionTemplate

java.lang.ObjectSE
org.springframework.transaction.support.DefaultTransactionDefinition
org.springframework.transaction.support.TransactionTemplate
実装されたすべてのインターフェース:
SerializableSEInitializingBeanTransactionOperationsTransactionDefinition

public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean
プログラムによるトランザクション境界設定とトランザクション例外処理を簡略化するテンプレートクラス。

中心的な方法は execute(org.springframework.transaction.support.TransactionCallback<T>) で、TransactionCallback インターフェースを実装するトランザクションコードをサポートしています。このテンプレートは、TransactionCallback 実装も呼び出し元のコードも明示的にトランザクションを処理する必要がないように、トランザクションのライフサイクルと起こり得る例外を処理します。

典型的な使用箇所: JDBC DataSources などのリソースを使用する低レベルのデータアクセスオブジェクトを書き込むことができますが、それ自体はトランザクション対応ではありません。代わりに、このクラスを利用する高レベルのアプリケーションサービスによって処理されるトランザクションに暗黙的に参加し、内部クラスのコールバックオブジェクトを介して低レベルのサービスを呼び出すことができます。

トランザクションマネージャー参照で直接インスタンス化することにより、サービス実装内で使用できます。または、アプリケーションコンテキストで準備し、Bean 参照としてサービスに渡すことができます。注: アプリケーションコンテキストでは、トランザクションマネージャーは常に Bean として構成する必要があります。最初のケースではサービスに直接指定し、2 番目のケースでは準備したテンプレートに指定します。

コンテキスト定義での便利な構成のために、名前による伝播動作と分離レベルの設定をサポートします。

導入:
17.03.2003
作成者:
Juergen Hoeller
関連事項:
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • TransactionTemplate

      public TransactionTemplate()
      Bean 用の新しい TransactionTemplate を作成します。

      メモ: PlatformTransactionManager は、execute 呼び出しの前に設定する必要があります。

      関連事項:
    • TransactionTemplate

      public TransactionTemplate(PlatformTransactionManager transactionManager)
      指定されたトランザクションマネージャーを使用して、新しい TransactionTemplate を構築します。
      パラメーター:
      transactionManager - 使用するトランザクション管理戦略
    • TransactionTemplate

      public TransactionTemplate(PlatformTransactionManager transactionManager, TransactionDefinition transactionDefinition)
      指定されたトランザクション定義からデフォルト設定を取得し、指定されたトランザクションマネージャーを使用して新しい TransactionTemplate を構築します。
      パラメーター:
      transactionManager - 使用するトランザクション管理戦略
      transactionDefinition - デフォルト設定のコピー元のトランザクション定義。ローカルプロパティは、値を変更するように設定できます。
  • メソッドの詳細

    • setTransactionManager

      public void setTransactionManager(@Nullable PlatformTransactionManager transactionManager)
      使用するトランザクション管理戦略を設定します。
    • getTransactionManager

      @Nullable public PlatformTransactionManager getTransactionManager()
      使用するトランザクション管理戦略を返します。
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • execute

      @Nullable public <T> T execute(TransactionCallback<T> action) throws TransactionException
      インターフェースからコピーされた説明: TransactionOperations
      トランザクション内で、指定されたコールバックオブジェクトによって指定されたアクションを実行します。

      トランザクション内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。コールバックによってスローされた RuntimeException は、ロールバックを強制する致命的な例外として扱われます。このような例外は、テンプレートの呼び出し元に伝播されます。

      次で指定:
      インターフェース TransactionOperationsexecute 
      パラメーター:
      action - トランザクションアクションを指定するコールバックオブジェクト
      戻り値:
      コールバックによって返された結果オブジェクト。ない場合は null 
      例外:
      TransactionException - 初期化、ロールバック、システムエラーの場合
      関連事項:
    • equals

      public boolean equals(@Nullable ObjectSE other)
      クラスからコピーされた説明: DefaultTransactionDefinition
      この実装は、toString() の結果を比較します。
      オーバーライド:
      クラス DefaultTransactionDefinitionequals 
      関連事項: