|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.aop.support.AopUtils
public abstract class AopUtils
Utility methods for AOP support code. Mainly for internal use within Spring's AOP support.
See AopProxyUtils
for a
collection of framework-specific AOP utility methods which depend
on internals of Spring's AOP framework implementation.
AopProxyUtils
Constructor Summary | |
---|---|
AopUtils()
|
Method Summary | |
---|---|
static boolean |
canApply(Advisor advisor,
Class<?> targetClass)
Can the given advisor apply at all on the given class? This is an important test as it can be used to optimize out a advisor for a class. |
static boolean |
canApply(Advisor advisor,
Class<?> targetClass,
boolean hasIntroductions)
Can the given advisor apply at all on the given class? |
static boolean |
canApply(Pointcut pc,
Class<?> targetClass)
Can the given pointcut apply at all on the given class? |
static boolean |
canApply(Pointcut pc,
Class<?> targetClass,
boolean hasIntroductions)
Can the given pointcut apply at all on the given class? |
static List<Advisor> |
findAdvisorsThatCanApply(List<Advisor> candidateAdvisors,
Class<?> clazz)
Determine the sublist of the candidateAdvisors list
that is applicable to the given class. |
static Method |
getMostSpecificMethod(Method method,
Class<?> targetClass)
Given a method, which may come from an interface, and a target class used in the current AOP invocation, find the corresponding target method if there is one. |
static Class<?> |
getTargetClass(Object candidate)
Determine the target class of the given bean instance which might be an AOP proxy. |
static Object |
invokeJoinpointUsingReflection(Object target,
Method method,
Object[] args)
Invoke the given target via reflection, as part of an AOP method invocation. |
static boolean |
isAopProxy(Object object)
Check whether the given object is a JDK dynamic proxy or a CGLIB proxy. |
static boolean |
isCglibProxy(Object object)
Check whether the given object is a CGLIB proxy. |
static boolean |
isCglibProxyClass(Class<?> clazz)
Deprecated. as of Spring 3.1 in favor of ClassUtils.isCglibProxyClass(Class) |
static boolean |
isCglibProxyClassName(String className)
Deprecated. as of Spring 3.1 in favor of ClassUtils.isCglibProxyClassName(String) |
static boolean |
isEqualsMethod(Method method)
Determine whether the given method is an "equals" method. |
static boolean |
isFinalizeMethod(Method method)
Determine whether the given method is a "finalize" method. |
static boolean |
isHashCodeMethod(Method method)
Determine whether the given method is a "hashCode" method. |
static boolean |
isJdkDynamicProxy(Object object)
Check whether the given object is a JDK dynamic proxy. |
static boolean |
isToStringMethod(Method method)
Determine whether the given method is a "toString" method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AopUtils()
Method Detail |
---|
public static boolean isAopProxy(Object object)
object
- the object to checkisJdkDynamicProxy(java.lang.Object)
,
isCglibProxy(java.lang.Object)
public static boolean isJdkDynamicProxy(Object object)
object
- the object to checkProxy.isProxyClass(java.lang.Class>)
public static boolean isCglibProxy(Object object)
ClassUtils.isCglibProxy(Object)
by checking also to see if the given
object is an instance of SpringProxy
.
object
- the object to checkClassUtils.isCglibProxy(Object)
@Deprecated public static boolean isCglibProxyClass(Class<?> clazz)
ClassUtils.isCglibProxyClass(Class)
clazz
- the class to check@Deprecated public static boolean isCglibProxyClassName(String className)
ClassUtils.isCglibProxyClassName(String)
className
- the class name to checkpublic static Class<?> getTargetClass(Object candidate)
Returns the target class for an AOP proxy and the plain class else.
candidate
- the instance to check (might be an AOP proxy)
null
)TargetClassAware.getTargetClass()
,
AopProxyUtils.ultimateTargetClass(Object)
public static boolean isEqualsMethod(Method method)
Object.equals(java.lang.Object)
public static boolean isHashCodeMethod(Method method)
Object.hashCode()
public static boolean isToStringMethod(Method method)
Object.toString()
public static boolean isFinalizeMethod(Method method)
Object.finalize()
public static Method getMostSpecificMethod(Method method, Class<?> targetClass)
IFoo.bar()
and the target class
may be DefaultFoo
. In this case, the method may be
DefaultFoo.bar()
. This enables attributes on that method to be found.
NOTE: In contrast to ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class>)
,
this method resolves Java 5 bridge methods in order to retrieve attributes
from the original method definition.
method
- the method to be invoked, which may come from an interfacetargetClass
- the target class for the current invocation.
May be null
or may not even implement the method.
targetClass
doesn't implement it or is null
ClassUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class>)
public static boolean canApply(Pointcut pc, Class<?> targetClass)
This is an important test as it can be used to optimize out a pointcut for a class.
pc
- the static or dynamic pointcut to checktargetClass
- the class to test
public static boolean canApply(Pointcut pc, Class<?> targetClass, boolean hasIntroductions)
This is an important test as it can be used to optimize out a pointcut for a class.
pc
- the static or dynamic pointcut to checktargetClass
- the class to testhasIntroductions
- whether or not the advisor chain
for this bean includes any introductions
public static boolean canApply(Advisor advisor, Class<?> targetClass)
advisor
- the advisor to checktargetClass
- class we're testing
public static boolean canApply(Advisor advisor, Class<?> targetClass, boolean hasIntroductions)
This is an important test as it can be used to optimize out a advisor for a class. This version also takes into account introductions (for IntroductionAwareMethodMatchers).
advisor
- the advisor to checktargetClass
- class we're testinghasIntroductions
- whether or not the advisor chain for this bean includes
any introductions
public static List<Advisor> findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> clazz)
candidateAdvisors
list
that is applicable to the given class.
candidateAdvisors
- the Advisors to evaluateclazz
- the target class
public static Object invokeJoinpointUsingReflection(Object target, Method method, Object[] args) throws Throwable
target
- the target objectmethod
- the method to invokeargs
- the arguments for the method
Throwable
- if thrown by the target method
AopInvocationException
- in case of a reflection error
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |