クラス AopUtils

java.lang.ObjectSE
org.springframework.aop.support.AopUtils

public abstract class AopUtils extends ObjectSE
AOP サポートコードのユーティリティメソッド。

主に Spring の AOP サポート内での内部使用のため。

Spring の AOP フレームワーク実装の内部に依存するフレームワーク固有の AOP ユーティリティメソッドのコレクションについては、AopProxyUtils を参照してください。

作成者:
Rod Johnson, Juergen Hoeller, Rob Harrop, Sebastien Deleuze
関連事項:
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static boolean
    canApply(Advisor advisor, ClassSE<?> targetClass)
    与えられたアドバイザーは与えられたクラスにまったく応募できますか? これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。
    static boolean
    canApply(Advisor advisor, ClassSE<?> targetClass, boolean hasIntroductions)
    与えられたアドバイザーは与えられたクラスにまったく適用できますか?
    static boolean
    canApply(Pointcut pc, ClassSE<?> targetClass)
    特定のポイントカットを特定のクラスに適用できますか?
    static boolean
    canApply(Pointcut pc, ClassSE<?> targetClass, boolean hasIntroductions)
    特定のポイントカットを特定のクラスに適用できますか?
    static ListSE<Advisor>
    findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> clazz)
    特定のクラスに適用可能な candidateAdvisors リストのサブリストを決定します。
    static MethodSE
    getMostSpecificMethod(MethodSE method, ClassSE<?> targetClass)
    インターフェースから取得できるメソッドと、現在の AOP 呼び出しで使用されるターゲットクラスを指定すると、対応するターゲットメソッドがあればそれを見つけます。
    static ClassSE<?>
    AOP プロキシである可能性がある、指定された Bean インスタンスのターゲットクラスを決定します。
    static ObjectSE
    AOP メソッド呼び出しの一部として、指定されたターゲットをリフレクション経由で呼び出します。
    static boolean
    指定されたオブジェクトが JDK 動的プロキシまたは CGLIB プロキシかどうかを確認します。
    static boolean
    指定されたオブジェクトが CGLIB プロキシかどうかを確認します。
    static boolean
    指定されたメソッドが「等しい」メソッドであるかどうかを判別します。
    static boolean
    指定されたメソッドが "finalize" メソッドであるかどうかを判別します。
    static boolean
    指定されたメソッドが "hashCode" メソッドであるかどうかを判別します。
    static boolean
    指定されたオブジェクトが JDK 動的プロキシかどうかを確認します。
    static boolean
    指定されたメソッドが "toString" メソッドであるかどうかを判別します。
    static MethodSE
    selectInvocableMethod(MethodSE method, ClassSE<?> targetType)
    ターゲット型で呼び出し可能なメソッドを選択します。ターゲット型で実際に公開されている場合は特定のメソッド自体、またはターゲット型のインターフェースの 1 つまたはターゲット型自体で対応するメソッドを選択します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • AopUtils

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

    • isAopProxy

      public static boolean isAopProxy(@Nullable ObjectSE object)
      指定されたオブジェクトが JDK 動的プロキシまたは CGLIB プロキシかどうかを確認します。

      このメソッドはさらに、指定されたオブジェクトが SpringProxy のインスタンスであるかどうかをチェックします。

      パラメーター:
      object - チェックするオブジェクト
      関連事項:
    • isJdkDynamicProxy

      public static boolean isJdkDynamicProxy(@Nullable ObjectSE object)
      指定されたオブジェクトが JDK 動的プロキシかどうかを確認します。

      このメソッドは、指定されたオブジェクトが SpringProxy のインスタンスであるかどうかをさらにチェックすることにより、Proxy.isProxyClass(Class)SE の実装を超えています。

      パラメーター:
      object - チェックするオブジェクト
      関連事項:
    • isCglibProxy

      public static boolean isCglibProxy(@Nullable ObjectSE object)
      指定されたオブジェクトが CGLIB プロキシかどうかを確認します。

      このメソッドは、指定されたオブジェクトが SpringProxy のインスタンスであるかどうかをさらにチェックすることにより、ClassUtils.isCglibProxy(Object) の実装を超えています。

      パラメーター:
      object - チェックするオブジェクト
      関連事項:
    • getTargetClass

      public static ClassSE<?> getTargetClass(ObjectSE candidate)
      AOP プロキシである可能性がある、指定された Bean インスタンスのターゲットクラスを決定します。

      AOP プロキシのターゲットクラスを返すか、それ以外の場合はプレーンクラスを返します。

      パラメーター:
      candidate - チェックするインスタンス (AOP プロキシである可能性があります)
      戻り値:
      ターゲットクラス (または、フォールバックとして指定されたオブジェクトのプレーンクラス。null)
      関連事項:
    • selectInvocableMethod

      public static MethodSE selectInvocableMethod(MethodSE method, @Nullable ClassSE<?> targetType)
      ターゲット型で呼び出し可能なメソッドを選択します。ターゲット型で実際に公開されている場合は特定のメソッド自体、またはターゲット型のインターフェースの 1 つまたはターゲット型自体で対応するメソッドを選択します。
      パラメーター:
      method - チェックする方法
      targetType - メソッドを検索するターゲット型 (通常は AOP プロキシ)
      戻り値:
      ターゲット型の対応する呼び出し可能なメソッド
      例外:
      IllegalStateExceptionSE - 指定されたメソッドが指定されたターゲット型で起動できない場合 (通常はプロキシの不一致が原因です)
      導入:
      4.3
      関連事項:
    • isEqualsMethod

      public static boolean isEqualsMethod(@Nullable MethodSE method)
      指定されたメソッドが「等しい」メソッドであるかどうかを判別します。
      関連事項:
    • isHashCodeMethod

      public static boolean isHashCodeMethod(@Nullable MethodSE method)
      指定されたメソッドが "hashCode" メソッドであるかどうかを判別します。
      関連事項:
    • isToStringMethod

      public static boolean isToStringMethod(@Nullable MethodSE method)
      指定されたメソッドが "toString" メソッドであるかどうかを判別します。
      関連事項:
    • isFinalizeMethod

      public static boolean isFinalizeMethod(@Nullable MethodSE method)
      指定されたメソッドが "finalize" メソッドであるかどうかを判別します。
      関連事項:
    • getMostSpecificMethod

      public static MethodSE getMostSpecificMethod(MethodSE method, @Nullable ClassSE<?> targetClass)
      インターフェースから取得される可能性のあるメソッドと、現在の AOP 呼び出しで使用されているターゲットクラスを指定して、対応するターゲットメソッドがある場合はそれを見つけます。例: メソッドは IFoo.bar() で、ターゲットクラスは DefaultFoo です。この場合、メソッドは DefaultFoo.bar() になります。これにより、そのメソッドの属性を見つけることができます。

      :ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>) とは対照的に、このメソッドは、 元のメソッド定義から属性を取得するためにブリッジメソッドを解決します。

      パラメーター:
      method - 呼び出されるメソッド。インターフェースから取得される場合があります
      targetClass - 現在の呼び出しのターゲットクラス (null である場合もあれば、メソッドを実装していない場合もあります)
      戻り値:
      特定のターゲットメソッド、または targetClass がそれを実装していない場合は元のメソッド
      関連事項:
    • canApply

      public static boolean canApply(Pointcut pc, ClassSE<?> targetClass)
      特定のポイントカットを特定のクラスに適用できますか?

      これは、クラスのポイントカットを最適化するために使用できるため、重要なテストです。

      パラメーター:
      pc - チェックする静的または動的ポイントカット
      targetClass - テストするクラス
      戻り値:
      ポイントカットが任意のメソッドに適用できるかどうか
    • canApply

      public static boolean canApply(Pointcut pc, ClassSE<?> targetClass, boolean hasIntroductions)
      特定のポイントカットを特定のクラスに適用できますか?

      これは、クラスのポイントカットを最適化するために使用できるため、重要なテストです。

      パラメーター:
      pc - チェックする静的または動的ポイントカット
      targetClass - テストするクラス
      hasIntroductions - この Bean のアドバイザーチェーンに導入が含まれているかどうか
      戻り値:
      ポイントカットが任意のメソッドに適用できるかどうか
    • canApply

      public static boolean canApply(Advisor advisor, ClassSE<?> targetClass)
      与えられたアドバイザーは与えられたクラスにまったく応募できますか? これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。
      パラメーター:
      advisor - チェックするアドバイザー
      targetClass - テストしているクラス
      戻り値:
      ポイントカットが任意のメソッドに適用できるかどうか
    • canApply

      public static boolean canApply(Advisor advisor, ClassSE<?> targetClass, boolean hasIntroductions)
      与えられたアドバイザーは与えられたクラスにまったく適用できますか?

      これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。このバージョンでは、導入(IntroductionAwareMethodMatchers の場合)も考慮されています。

      パラメーター:
      advisor - チェックするアドバイザー
      targetClass - テストしているクラス
      hasIntroductions - この Bean のアドバイザーチェーンに導入が含まれているかどうか
      戻り値:
      ポイントカットが任意のメソッドに適用できるかどうか
    • findAdvisorsThatCanApply

      public static ListSE<Advisor> findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> clazz)
      特定のクラスに適用可能な candidateAdvisors リストのサブリストを決定します。
      パラメーター:
      candidateAdvisors - 評価するアドバイザー
      clazz - ターゲットクラス
      戻り値:
      指定されたクラスのオブジェクトに適用できるアドバイザのサブリスト (そのまま受信リストである可能性があります)
    • invokeJoinpointUsingReflection

      @Nullable public static ObjectSE invokeJoinpointUsingReflection(@Nullable ObjectSE target, MethodSE method, ObjectSE[] args) throws ThrowableSE
      AOP メソッド呼び出しの一部として、指定されたターゲットをリフレクション経由で呼び出します。
      パラメーター:
      target - ターゲットオブジェクト
      method - 呼び出すメソッド
      args - メソッドの引数
      戻り値:
      呼び出し結果(ある場合)
      例外:
      ThrowableSE - ターゲットメソッドによってスローされた場合
      AopInvocationException - 反射エラーの場合