## org.springframework.aop.aspectj
Class AspectJAroundAdvice

    java.lang.Object
      org.springframework.aop.aspectj.AbstractAspectJAdvice
          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