@Transactionalアノテーションの詳細な解釈

@Transactionalアノテーションは、インターフェース、インターフェースメソッド、クラス、クラスのメソッドに適用することができます

1.クラスとして使用する場合、すべてのパブリックメソッドのクラスには、トランザクション属性のこのタイプを持っています

メソッド定義におけるレベルの役割は、クラスレベルを上書きします。2.

3.インターフェースとインターフェース方法における役割のみを反映するためにそれを使用している場合、JDKの動的プロキシであるエージェントインタフェースベース、プロキシなくCGLIB

保護された、プライベートまたは使用@Transactional注釈可視性の方法では、デフォルトで有効になりませんで、それは任意の例外をスローしません4。

5.デフォルトでは、唯一のメソッド呼び出しは、クラスメソッド内で、このクラスの他のメソッドを呼び出して、ある外AOPプロキシ、からキャプチャされる方法が変更されたアノテーションを使用して呼び出された場合でも、行動の内政起こさない@Transactional

利用可能@Transactional注釈パラメータ

読み取り専用  

このプロパティは読み取り専用の真、偽のために提供される現在のトランザクションは、読取り専用トランザクションであるかどうかを設定するために使用され、それはデフォルトはfalseで、読み書き言いました

rollbackFor 

この属性は、メソッド指定された例外例外は、トランザクションがロールバックされ、配列を投げたときに、必要な配列のロールバック例外クラスを設定するために使用されます。

たとえば:@Transactional(rollbackFor = RuntimeException.class):単一の例外クラスを指定する1

2.複数の例外クラスを指定:@Transactional(rollbackFor = {RuntimeException.class、BusnessException.class})

rollbackForClassName

このプロパティは、メソッドは、トランザクションがロールバックされ、配列名を投げ例外例外を指定するときにロールバックされる配列の必要性の例外クラス名を設定するために使用されます。例えば:1つの例外クラス名を指定します。2.複数の例外クラス名を指定@Transactional(rollbackForClassName = "のRuntimeExceptionを"):@Transactional(rollbackForClassName = { "のRuntimeException"、 "BusnessException"})

noRollbackFor

スローされた例外は、配列を指定した場合は、このプロパティは例外クラスのロールバック処理をする必要はない配列を設定するために使用されて、いないトランザクションのロールバック

タイムアウト

このプロパティは、トランザクションのタイムアウトを秒単位で設定するために使用され、デフォルト値の-1は、無期限に示します

伝搬

このプロパティは、例えば、トランザクションの伝播を設定するために使用される:@Transactionalを(伝播= Propagation.NOT_SUPPORTED)

 

今日のニュースの見出しからの抜粋

おすすめ

転載: www.cnblogs.com/jiehanshi/p/11994079.html