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 Object
invoke(MethodInvocation mi)
Implement this method to perform extra treatments before and after the invocation.boolean
isAfterAdvice()
Return whether this is an after advice.boolean
isBeforeAdvice()
Return whether this is a before advice.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.protected boolean
supportsProceedingJoinPoint()
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:AspectJPrecedenceInformation
Return whether this is a before advice.- Specified by:
isBeforeAdvice
in interfaceAspectJPrecedenceInformation
isAfterAdvice
public boolean isAfterAdvice()
Description copied from interface:AspectJPrecedenceInformation
Return whether this is an after advice.- Specified by:
isAfterAdvice
in interfaceAspectJPrecedenceInformation
supportsProceedingJoinPoint
protected boolean supportsProceedingJoinPoint()
- Overrides:
supportsProceedingJoinPoint
in classAbstractAspectJAdvice
invoke
public Object invoke(MethodInvocation mi) throws Throwable
Description copied from interface:MethodInterceptor
Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invokeJoinpoint.proceed()
.- Specified by:
invoke
in 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