クラス AbstractFallbackTransactionAttributeSource

java.lang.ObjectSE
org.springframework.transaction.interceptor.AbstractFallbackTransactionAttributeSource
実装されたすべてのインターフェース:
AwareEmbeddedValueResolverAwareTransactionAttributeSource
既知の直属サブクラス
AnnotationTransactionAttributeSource

public abstract class AbstractFallbackTransactionAttributeSource extends ObjectSE implements TransactionAttributeSource, EmbeddedValueResolverAware
メソッドの属性をキャッシュし、フォールバックポリシーを実装する TransactionAttributeSource の抽象的な実装: 1. 特定のターゲットメソッド。2. ターゲットクラス。3. メソッドの宣言 ; 4. クラス / インターフェースを宣言します。

ターゲットメソッドに何も関連付けられていない場合は、デフォルトでターゲットクラスのトランザクション属性が使用されます。ターゲットメソッドに関連付けられたトランザクション属性は、クラストランザクション属性を完全にオーバーライドします。ターゲットクラスに何も見つからない場合、呼び出されたメソッドが呼び出されたインターフェース(JDK プロキシの場合)がチェックされます。

導入:
1.1
作成者:
Rod Johnson, Juergen Hoeller
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。

      この基本クラスは Serializable としてマークされていないため、具象サブクラスが Serializable である場合、直列化後にロガーが再作成されます。

  • コンストラクターの詳細

    • AbstractFallbackTransactionAttributeSource

      public AbstractFallbackTransactionAttributeSource()
  • メソッドの詳細

    • setEmbeddedValueResolver

      public void setEmbeddedValueResolver(StringValueResolver resolver)
      インターフェースからコピーされた説明: EmbeddedValueResolverAware
      StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。
      次で指定:
      インターフェース EmbeddedValueResolverAwaresetEmbeddedValueResolver 
    • getTransactionAttribute

      @Nullable public TransactionAttribute getTransactionAttribute(MethodSE method, @Nullable ClassSE<?> targetClass)
      このメソッド呼び出しのトランザクション属性を決定します。

      メソッド属性が見つからない場合、デフォルトでクラスのトランザクション属性になります。

      次で指定:
      インターフェース TransactionAttributeSourcegetTransactionAttribute 
      パラメーター:
      method - 現在の呼び出しのメソッド (非 null)
      targetClass - この呼び出しのターゲットクラス (null にすることができます)
      戻り値:
      このメソッドの TransactionAttribute、またはメソッドがトランザクションでない場合は null 
    • getCacheKey

      protected ObjectSE getCacheKey(MethodSE method, @Nullable ClassSE<?> targetClass)
      指定されたメソッドとターゲットクラスのキャッシュキーを決定します。

      オーバーロードされたメソッドに対して同じキーを生成してはなりません。同じメソッドの異なるインスタンスに対して同じキーを生成する必要があります。

      パラメーター:
      method - メソッド (非 null)
      targetClass - ターゲットクラス (null の場合があります)
      戻り値:
      キャッシュキー (非 null)
    • computeTransactionAttribute

      @Nullable protected TransactionAttribute computeTransactionAttribute(MethodSE method, @Nullable ClassSE<?> targetClass)
      getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>) と同じ署名ですが、結果をキャッシュしません。getTransactionAttribute(java.lang.reflect.Method, java.lang.Class<?>) は、このメソッドのキャッシュデコレータです。

      4.1.8 以降、このメソッドはオーバーライドできます。

      導入:
      4.1.8
      関連事項:
    • findTransactionAttribute

      @Nullable protected abstract TransactionAttribute findTransactionAttribute(ClassSE<?> clazz)
      サブクラスは、特定のクラスのトランザクション属性があれば、それを返すためにこれを実装する必要があります。
      パラメーター:
      clazz - 属性を取得するクラス
      戻り値:
      このクラスに関連付けられているすべてのトランザクション属性、または存在しない場合は null 
    • findTransactionAttribute

      @Nullable protected abstract TransactionAttribute findTransactionAttribute(MethodSE method)
      サブクラスは、指定されたメソッドのトランザクション属性があればそれを返すためにこれを実装する必要があります。
      パラメーター:
      method - 属性を取得するメソッド
      戻り値:
      このメソッドに関連付けられたすべてのトランザクション属性。ない場合は null 
    • allowPublicMethodsOnly

      protected boolean allowPublicMethodsOnly()
      public メソッドのみにトランザクションセマンティクスを許可する必要がありますか?

      デフォルトの実装は false を返します。