Package org.springframework.aop.aspectj
Class AspectJAroundAdvice
- java.lang.Object
- org.springframework.aop.aspectj.AbstractAspectJAdvice
- org.springframework.aop.aspectj.AspectJAroundAdvice
- All Implemented Interfaces:
Serializable,Advice,Interceptor,MethodInterceptor,AspectJPrecedenceInformation,Ordered
public class AspectJAroundAdvice extends AbstractAspectJAdvice implements MethodInterceptor, Serializable
Spring AOP around advice (MethodInterceptor) that wraps an AspectJ advice method. Exposes ProceedingJoinPoint.- Since:
- 2.0
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
- Serialized Form
Field Summary
Fields inherited from class org.springframework.aop.aspectj.AbstractAspectJAdvice
aspectJAdviceMethod, JOIN_POINT_KEY
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description AspectJAroundAdvice(Method aspectJAroundAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectinvoke(MethodInvocation mi)Implement this method to perform extra treatments before and after the invocation.booleanisAfterAdvice()Return whether this is an after advice.booleanisBeforeAdvice()Return whether this is a before advice.protected org.aspectj.lang.ProceedingJoinPointlazyGetProceedingJoinPoint(ProxyMethodInvocation rmi)Return the ProceedingJoinPoint for the current invocation, instantiating it lazily if it hasn't been bound to the thread already.protected booleansupportsProceedingJoinPoint()Methods inherited from class org.springframework.aop.aspectj.AbstractAspectJAdvice
argBinding, buildSafePointcut, calculateArgumentBindings, createParameterNameDiscoverer, currentJoinPoint, getAspectClassLoader, getAspectInstanceFactory, getAspectJAdviceMethod, getAspectName, getDeclarationOrder, getDiscoveredReturningGenericType, getDiscoveredReturningType, getDiscoveredThrowingType, getJoinPoint, getJoinPointMatch, getJoinPointMatch, getOrder, getPointcut, invokeAdviceMethod, invokeAdviceMethod, invokeAdviceMethodWithGivenArgs, setArgumentNames, setArgumentNamesFromStringArray, setAspectName, setDeclarationOrder, setReturningName, setReturningNameNoCheck, setThrowingName, setThrowingNameNoCheck, toString
Constructor Detail
AspectJAroundAdvice
public AspectJAroundAdvice(Method aspectJAroundAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)
Method Detail
isBeforeAdvice
public boolean isBeforeAdvice()
Description copied from interface:AspectJPrecedenceInformationReturn whether this is a before advice.- Specified by:
isBeforeAdvicein interfaceAspectJPrecedenceInformation
isAfterAdvice
public boolean isAfterAdvice()
Description copied from interface:AspectJPrecedenceInformationReturn whether this is an after advice.- Specified by:
isAfterAdvicein interfaceAspectJPrecedenceInformation
supportsProceedingJoinPoint
protected boolean supportsProceedingJoinPoint()
- Overrides:
supportsProceedingJoinPointin classAbstractAspectJAdvice
invoke
public Object invoke(MethodInvocation mi) throws Throwable
Description copied from interface:MethodInterceptorImplement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invokeJoinpoint.proceed().- Specified by:
invokein interfaceMethodInterceptor- Parameters:
mi- the method invocation joinpoint- Returns:
- the result of the call to
Joinpoint.proceed(); might be intercepted by the interceptor - Throws:
Throwable- if the interceptors or the target object throws an exception
lazyGetProceedingJoinPoint
protected org.aspectj.lang.ProceedingJoinPoint lazyGetProceedingJoinPoint(ProxyMethodInvocation rmi)
Return the ProceedingJoinPoint for the current invocation, instantiating it lazily if it hasn't been bound to the thread already.- Parameters:
rmi- the current Spring AOP ReflectiveMethodInvocation, which we'll use for attribute binding- Returns:
- the ProceedingJoinPoint to make available to advice methods