public abstract class AopUtils extends ObjectSE
主に Spring の AOP サポート内での内部使用のため。
Spring の AOP フレームワーク実装の内部に依存するフレームワーク固有の AOP ユーティリティメソッドのコレクションについては、AopProxyUtils
を参照してください。
AopProxyUtils
コンストラクターと説明 |
---|
AopUtils() |
修飾子と型 | メソッドと説明 |
---|---|
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<?> | getTargetClass(ObjectSE candidate) AOP プロキシである可能性がある、指定された Bean インスタンスのターゲットクラスを決定します。 |
static ObjectSE | invokeJoinpointUsingReflection(ObjectSE target, MethodSE method, ObjectSE[] args) AOP メソッド呼び出しの一部として、指定されたターゲットをリフレクション経由で呼び出します。 |
static boolean | isAopProxy(ObjectSE object) 指定されたオブジェクトが JDK 動的プロキシまたは CGLIB プロキシかどうかを確認します。 |
static boolean | isCglibProxy(ObjectSE object) 指定されたオブジェクトが CGLIB プロキシかどうかを確認します。 |
static boolean | isEqualsMethod(MethodSE method) 指定されたメソッドが「等しい」メソッドであるかどうかを判別します。 |
static boolean | isFinalizeMethod(MethodSE method) 指定されたメソッドが "finalize" メソッドであるかどうかを判別します。 |
static boolean | isHashCodeMethod(MethodSE method) 指定されたメソッドが "hashCode" メソッドであるかどうかを判断します。 |
static boolean | isJdkDynamicProxy(ObjectSE object) 指定されたオブジェクトが JDK 動的プロキシかどうかを確認します。 |
static boolean | isToStringMethod(MethodSE method) 指定されたメソッドが "toString" メソッドであるかどうかを判断します。 |
static MethodSE | selectInvocableMethod(MethodSE method, ClassSE<?> targetType) ターゲット型で呼び出し可能なメソッドを選択します。ターゲット型で実際に公開されている場合は特定のメソッド自体、またはターゲット型のインターフェースの 1 つまたはターゲット型自体で対応するメソッドを選択します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static boolean isAopProxy(@Nullable ObjectSE object)
このメソッドはさらに、指定されたオブジェクトが SpringProxy
のインスタンスであるかどうかをチェックします。
object
- チェックするオブジェクト isJdkDynamicProxy(java.lang.Object)
, isCglibProxy(java.lang.Object)
public static boolean isJdkDynamicProxy(@Nullable ObjectSE object)
このメソッドは、指定されたオブジェクトが SpringProxy
のインスタンスであるかどうかをさらにチェックすることにより、Proxy.isProxyClass(Class)
SE の実装を超えています。
object
- チェックするオブジェクト Proxy.isProxyClass(java.lang.Class<?>)
SEpublic static boolean isCglibProxy(@Nullable ObjectSE object)
このメソッドは、指定されたオブジェクトが SpringProxy
のインスタンスであるかどうかをさらにチェックすることにより、ClassUtils.isCglibProxy(Object)
の実装を超えています。
object
- チェックするオブジェクト ClassUtils.isCglibProxy(Object)
public static ClassSE<?> getTargetClass(ObjectSE candidate)
AOP プロキシのターゲットクラスを返すか、それ以外の場合はプレーンクラスを返します。
candidate
- チェックするインスタンス (AOP プロキシである可能性があります)null
)TargetClassAware.getTargetClass()
, AopProxyUtils.ultimateTargetClass(Object)
public static MethodSE selectInvocableMethod(MethodSE method, @Nullable ClassSE<?> targetType)
method
- チェックする方法 targetType
- メソッドを検索するターゲット型 (通常は AOP プロキシ)IllegalStateExceptionSE
- 指定されたメソッドが指定されたターゲット型で起動できない場合 (通常はプロキシの不一致が原因です)MethodIntrospector.selectInvocableMethod(Method, Class)
public static boolean isEqualsMethod(@Nullable MethodSE method)
public static boolean isHashCodeMethod(@Nullable MethodSE method)
Object.hashCode()
SEpublic static boolean isToStringMethod(@Nullable MethodSE method)
Object.toString()
SEpublic static boolean isFinalizeMethod(@Nullable MethodSE method)
Object.finalize()
SEpublic static MethodSE getMostSpecificMethod(MethodSE method, @Nullable ClassSE<?> targetClass)
IFoo.bar()
で、ターゲットクラスは DefaultFoo
です。この場合、メソッドは DefaultFoo.bar()
になります。これにより、そのメソッドの属性を見つけることができます。 注 :ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>)
とは対照的に、このメソッドは、 元のメソッド定義から属性を取得するためにブリッジメソッドを解決します。
method
- 呼び出されるメソッド。インターフェースから取得される場合があります targetClass
- 現在の呼び出しのターゲットクラス。null
である場合と、メソッドを実装していない場合があります。targetClass
が実装していないか null
である場合は元のメソッド ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>)
public static boolean canApply(Pointcut pc, ClassSE<?> targetClass)
これは、クラスのポイントカットを最適化するために使用できるため、重要なテストです。
pc
- チェックする静的または動的ポイントカット targetClass
- テストするクラス public static boolean canApply(Pointcut pc, ClassSE<?> targetClass, boolean hasIntroductions)
これは、クラスのポイントカットを最適化するために使用できるため、重要なテストです。
pc
- チェックする静的または動的ポイントカット targetClass
- テストするクラス hasIntroductions
- この Bean のアドバイザーチェーンに導入が含まれているかどうか public static boolean canApply(Advisor advisor, ClassSE<?> targetClass)
advisor
- チェックするアドバイザー targetClass
- テストしているクラス public static boolean canApply(Advisor advisor, ClassSE<?> targetClass, boolean hasIntroductions)
これは、クラスのアドバイザーを最適化するために使用できるため、重要なテストです。このバージョンでは、導入(IntroductionAwareMethodMatchers の場合)も考慮されています。
advisor
- チェックするアドバイザー targetClass
- テストしているクラス hasIntroductions
- この Bean のアドバイザーチェーンに導入が含まれているかどうか public static ListSE<Advisor> findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> clazz)
candidateAdvisors
リストのサブリストを決定します。candidateAdvisors
- 評価するアドバイザー clazz
- ターゲットクラス @Nullable public static ObjectSE invokeJoinpointUsingReflection(@Nullable ObjectSE target, MethodSE method, ObjectSE[] args) throws ThrowableSE
target
- ターゲットオブジェクト method
- 呼び出すメソッド args
- メソッドの引数 ThrowableSE
- ターゲットメソッドによってスローされた場合 AopInvocationException
- 反射エラーの場合