クラス AopUtils
java.lang.ObjectSE
org.springframework.aop.support.AopUtils
AOP サポートコードのユーティリティメソッド。
主に Spring の AOP サポート内での内部使用のため。
Spring の AOP フレームワーク実装の内部に依存するフレームワーク固有の AOP ユーティリティメソッドのコレクションについては、AopProxyUtils を参照してください。
- 作成者:
- Rod Johnson, Juergen Hoeller, Rob Harrop, Sebastien Deleuze
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static boolean与えられたアドバイザーは与えられたクラスにまったく応募できますか? これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。static boolean与えられたアドバイザーは与えられたクラスにまったく適用できますか?static boolean特定のポイントカットを特定のクラスに適用できますか?static boolean特定のポイントカットを特定のクラスに適用できますか?findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> clazz) 特定のクラスに適用可能なcandidateAdvisorsリストのサブリストを決定します。static MethodSEgetMostSpecificMethod(MethodSE method, @Nullable ClassSE<?> targetClass) インターフェースから取得できるメソッドと、現在の AOP 呼び出しで使用されるターゲットクラスを指定すると、対応するターゲットメソッドがあればそれを見つけます。static ClassSE<?> getTargetClass(ObjectSE candidate) AOP プロキシである可能性がある、指定された Bean インスタンスのターゲットクラスを決定します。invokeJoinpointUsingReflection(@Nullable ObjectSE target, MethodSE method, @Nullable ObjectSE[] args) AOP メソッド呼び出しの一部として、指定されたターゲットをリフレクション経由で呼び出します。static booleanisAopProxy(@Nullable ObjectSE object) 指定されたオブジェクトが JDK 動的プロキシまたは CGLIB プロキシかどうかを確認します。static booleanisCglibProxy(@Nullable ObjectSE object) 指定されたオブジェクトが CGLIB プロキシかどうかを確認します。static booleanisEqualsMethod(@Nullable MethodSE method) 指定されたメソッドが「等しい」メソッドであるかどうかを判別します。static booleanisFinalizeMethod(@Nullable MethodSE method) 指定されたメソッドが "finalize" メソッドであるかどうかを判別します。static booleanisHashCodeMethod(@Nullable MethodSE method) 指定されたメソッドが "hashCode" メソッドであるかどうかを判断します。static booleanisJdkDynamicProxy(@Nullable ObjectSE object) 指定されたオブジェクトが JDK 動的プロキシかどうかを確認します。static booleanisToStringMethod(@Nullable MethodSE method) 指定されたメソッドが "toString" メソッドであるかどうかを判断します。static MethodSEselectInvocableMethod(MethodSE method, @Nullable ClassSE<?> targetType) ターゲット型で呼び出し可能なメソッドを選択します。ターゲット型で実際に公開されている場合は特定のメソッド自体、またはターゲット型のインターフェースの 1 つまたはターゲット型自体で対応するメソッドを選択します。
コンストラクターの詳細
AopUtils
public AopUtils()
メソッドの詳細
isAopProxy
指定されたオブジェクトが JDK 動的プロキシまたは CGLIB プロキシかどうかを確認します。このメソッドはさらに、指定されたオブジェクトが
SpringProxyのインスタンスであるかどうかをチェックします。- パラメーター:
object- チェックするオブジェクト- 関連事項:
isJdkDynamicProxy
指定されたオブジェクトが JDK 動的プロキシかどうかを確認します。このメソッドは、指定されたオブジェクトが
SpringProxyのインスタンスであるかどうかをさらにチェックすることにより、Proxy.isProxyClass(Class)SE の実装を超えています。- パラメーター:
object- チェックするオブジェクト- 関連事項:
isCglibProxy
指定されたオブジェクトが CGLIB プロキシかどうかを確認します。このメソッドは、指定されたオブジェクトが
SpringProxyのインスタンスであるかどうかをさらにチェックすることにより、ClassUtils.isCglibProxy(Object)の実装を超えています。- パラメーター:
object- チェックするオブジェクト- 関連事項:
getTargetClass
selectInvocableMethod
ターゲット型で呼び出し可能なメソッドを選択します。ターゲット型で実際に公開されている場合は特定のメソッド自体、またはターゲット型のインターフェースの 1 つまたはターゲット型自体で対応するメソッドを選択します。- パラメーター:
method- チェックする方法targetType- メソッドを検索するターゲット型 (通常は AOP プロキシ)- 戻り値:
- ターゲット型の対応する呼び出し可能なメソッド
- 例外:
IllegalStateExceptionSE- 指定されたメソッドが指定されたターゲット型で起動できない場合 (通常はプロキシの不一致が原因です)- 導入:
- 4.3
- 関連事項:
isEqualsMethod
isHashCodeMethod
isToStringMethod
isFinalizeMethod
getMostSpecificMethod
インターフェースから取得される可能性のあるメソッドと、現在の AOP 呼び出しで使用されるターゲットクラスが指定されている場合、対応するターゲットメソッドがあればそれを見つけます。例: メソッドはIFoo.bar()で、ターゲットクラスはDefaultFooの可能性があります。この場合、メソッドはDefaultFoo.bar()の可能性があります。これにより、そのメソッドの属性を見つけることができます。注 :
ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>)とは対照的に、このメソッドは、 元のメソッド定義から属性を取得するためにブリッジメソッドを解決します。- パラメーター:
method- 呼び出されるメソッド。インターフェースから取得される場合がありますtargetClass- 現在の呼び出しのターゲットクラス (nullである場合もあれば、メソッドを実装していない場合もあります)- 戻り値:
- 特定のターゲットメソッド、または
targetClassがそれを実装していない場合は元のメソッド - 関連事項:
canApply
canApply
特定のポイントカットを特定のクラスに適用できますか?これは、クラスのポイントカットを最適化するために使用できるため、重要なテストです。
- パラメーター:
pc- チェックする静的または動的ポイントカットtargetClass- テストするクラスhasIntroductions- この Bean のアドバイザーチェーンに導入が含まれているかどうか- 戻り値:
- ポイントカットが任意のメソッドに適用できるかどうか
canApply
canApply
与えられたアドバイザーは与えられたクラスにまったく適用できますか?これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。このバージョンでは、導入(IntroductionAwareMethodMatchers の場合)も考慮されています。
- パラメーター:
advisor- チェックするアドバイザーtargetClass- テストしているクラスhasIntroductions- この Bean のアドバイザーチェーンに導入が含まれているかどうか- 戻り値:
- ポイントカットが任意のメソッドに適用できるかどうか
findAdvisorsThatCanApply
invokeJoinpointUsingReflection
public static @Nullable ObjectSE invokeJoinpointUsingReflection(@Nullable ObjectSE target, MethodSE method, @Nullable ObjectSE[] args) throws ThrowableSE AOP メソッド呼び出しの一部として、指定されたターゲットをリフレクション経由で呼び出します。- パラメーター:
target- ターゲットオブジェクトmethod- 呼び出すメソッドargs- メソッドの引数- 戻り値:
- 呼び出し結果(ある場合)
- 例外:
ThrowableSE- ターゲットメソッドによってスローされた場合AopInvocationException- 反射エラーの場合