クラス TransactionTemplate
- 実装されているすべてのインターフェース:
SerializableSE, InitializingBean, TransactionOperations, TransactionDefinition
中心的な方法は execute(TransactionCallback) で、TransactionCallback インターフェースを実装するトランザクションコードをサポートしています。このテンプレートは、TransactionCallback 実装も呼び出し元のコードも明示的にトランザクションを処理する必要がないように、トランザクションのライフサイクルと起こり得る例外を処理します。
典型的な使用箇所: JDBC DataSources などのリソースを使用する低レベルのデータアクセスオブジェクトを書き込むことができますが、それ自体はトランザクション対応ではありません。代わりに、このクラスを利用する高レベルのアプリケーションサービスによって処理されるトランザクションに暗黙的に参加し、内部クラスのコールバックオブジェクトを介して低レベルのサービスを呼び出すことができます。
トランザクションマネージャー参照で直接インスタンス化することにより、サービス実装内で使用できます。または、アプリケーションコンテキストで準備し、Bean 参照としてサービスに渡すことができます。注: アプリケーションコンテキストでは、トランザクションマネージャーは常に Bean として構成する必要があります。最初のケースではサービスに直接指定し、2 番目のケースでは準備したテンプレートに指定します。
コンテキスト定義での便利な構成のために、名前による伝播動作と分離レベルの設定をサポートします。
- 導入:
- 17.03.2003
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールドクラス DefaultTransactionDefinition から継承されたフィールド
PREFIX_ISOLATION, PREFIX_PROPAGATION, PREFIX_TIMEOUT, READ_ONLY_MARKERインターフェース TransactionDefinition から継承されたフィールド
ISOLATION_DEFAULT, ISOLATION_READ_COMMITTED, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER, PROPAGATION_NOT_SUPPORTED, PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_SUPPORTS, TIMEOUT_DEFAULTコンストラクターの概要
コンストラクターコンストラクター説明Bean 用の新しい TransactionTemplate を作成します。TransactionTemplate(PlatformTransactionManager transactionManager) 指定されたトランザクションマネージャーを使用して、新しい TransactionTemplate を構築します。TransactionTemplate(PlatformTransactionManager transactionManager, TransactionDefinition transactionDefinition) 指定されたトランザクション定義からデフォルト設定を取得し、指定されたトランザクションマネージャーを使用して新しい TransactionTemplate を構築します。メソッドのサマリー
修飾子と型メソッド説明voidbooleanこの実装は、toString()の結果を比較します。execute(TransactionCallback<T> action) トランザクション内で、指定されたコールバックオブジェクトによって指定されたアクションを実行します。使用するトランザクション管理戦略を返します。voidsetTransactionManager(@Nullable PlatformTransactionManager transactionManager) 使用するトランザクション管理戦略を設定します。クラス DefaultTransactionDefinition から継承されたメソッド
getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout, toStringインターフェース TransactionOperations から継承されたメソッド
executeWithoutResult
フィールドの詳細
logger
protected final org.apache.commons.logging.Log loggerサブクラスで利用可能なロガー。
コンストラクターの詳細
TransactionTemplate
public TransactionTemplate()Bean 用の新しい TransactionTemplate を作成します。メモ: PlatformTransactionManager は、
execute呼び出しの前に設定する必要があります。- 関連事項:
TransactionTemplate
指定されたトランザクションマネージャーを使用して、新しい TransactionTemplate を構築します。- パラメーター:
transactionManager- 使用するトランザクション管理戦略
TransactionTemplate
public TransactionTemplate(PlatformTransactionManager transactionManager, TransactionDefinition transactionDefinition) 指定されたトランザクション定義からデフォルト設定を取得し、指定されたトランザクションマネージャーを使用して新しい TransactionTemplate を構築します。- パラメーター:
transactionManager- 使用するトランザクション管理戦略transactionDefinition- デフォルト設定のコピー元のトランザクション定義。ローカルプロパティは、値を変更するように設定できます。
メソッドの詳細
setTransactionManager
使用するトランザクション管理戦略を設定します。getTransactionManager
使用するトランザクション管理戦略を返します。afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBeanすべての Bean プロパティを設定し、BeanFactoryAware、ApplicationContextAwareなどを満たした後、包含BeanFactoryによって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet
execute
public <T extends @Nullable ObjectSE> T execute(TransactionCallback<T> action) throws TransactionException インターフェースからコピーされた説明:TransactionOperationsトランザクション内で、指定されたコールバックオブジェクトによって指定されたアクションを実行します。トランザクション内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。コールバックによってスローされた RuntimeException は、ロールバックを強制する致命的な例外として扱われます。このような例外は、テンプレートの呼び出し元に伝播されます。
- 次で指定:
- インターフェース
TransactionOperationsのexecute - パラメーター:
action- トランザクションアクションを指定するコールバックオブジェクト- 戻り値:
- コールバックによって返された結果オブジェクト。ない場合は
null - 例外:
TransactionException- 初期化、ロールバック、システムエラーの場合- 関連事項:
equals
クラスからコピーされた説明:DefaultTransactionDefinitionこの実装は、toString()の結果を比較します。- オーバーライド:
- クラス
DefaultTransactionDefinitionのequals - 関連事項: