org.springframework.aop.aspectj
Class AspectJAroundAdvice

java.lang.Object
  extended by org.springframework.aop.aspectj.AbstractAspectJAdvice
      extended by org.springframework.aop.aspectj.AspectJAroundAdvice
All Implemented Interfaces:
Advice, Interceptor, MethodInterceptor, AspectJPrecedenceInformation, Ordered

public class AspectJAroundAdvice
extends AbstractAspectJAdvice
implements MethodInterceptor

Spring AOP around advice (MethodInterceptor) that wraps an AspectJ advice method. Exposes ProceedingJoinPoint.

Since:
2.0
Author:
Rod Johnson, Juergen Hoeller

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
AspectJAroundAdvice(Method aspectJAroundAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)
           
 
Method Summary
 Object invoke(MethodInvocation mi)
           
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 interface AspectJPrecedenceInformation

isAfterAdvice

public boolean isAfterAdvice()
Description copied from interface: AspectJPrecedenceInformation
Return whether this is an after advice.

Specified by:
isAfterAdvice in interface AspectJPrecedenceInformation

supportsProceedingJoinPoint

protected boolean supportsProceedingJoinPoint()
Overrides:
supportsProceedingJoinPoint in class AbstractAspectJAdvice

invoke

public Object invoke(MethodInvocation mi)
              throws Throwable
Specified by:
invoke in interface MethodInterceptor
Throws:
Throwable

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