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<?>)
とは異なり、このメソッドは、 元のメソッド定義から属性を取得するために、Java 5 ブリッジメソッドを解決します。
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
- 反射エラーの場合