public class

ExposeInvocationInterceptor

extends Object
implements Serializable Ordered
java.lang.Object
   ↳ org.springframework.aop.interceptor.ExposeInvocationInterceptor

Class Overview

Interceptor that exposes the current org.aopalliance.intercept.MethodInvocation as a thread-local object. We occasionally need to do this; for example, when a pointcut (e.g. an AspectJ expression pointcut) needs to know the full invocation context.

Don't use this interceptor unless this is really necessary. Target objects should not normally know about Spring AOP, as this creates a dependency on Spring API. Target objects should be plain POJOs as far as possible.

If used, this interceptor will normally be the first in the interceptor chain.

Summary

[Expand]
Inherited Constants
From interface org.springframework.core.Ordered
Fields
public static final Advisor ADVISOR Singleton advisor for this class.
public static final ExposeInvocationInterceptor INSTANCE Singleton instance of this class
Public Methods
static MethodInvocation currentInvocation()
Return the AOP Alliance MethodInvocation object associated with the current invocation.
int getOrder()
Return the order value of this object, with a higher value meaning greater in terms of sorting.
Object invoke(MethodInvocation mi)
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.core.Ordered

Fields

public static final Advisor ADVISOR

Singleton advisor for this class. Use in preference to INSTANCE when using Spring AOP, as it prevents the need to create a new Advisor to wrap the instance.

public static final ExposeInvocationInterceptor INSTANCE

Singleton instance of this class

Public Methods

public static MethodInvocation currentInvocation ()

Return the AOP Alliance MethodInvocation object associated with the current invocation.

Returns
  • the invocation object associated with the current invocation
Throws
IllegalStateException if there is no AOP invocation in progress, or if the ExposeInvocationInterceptor was not added to this interceptor chain

public int getOrder ()

Return the order value of this object, with a higher value meaning greater in terms of sorting.

Normally starting with 0, with Integer.MAX_VALUE indicating the greatest value. Same order values will result in arbitrary positions for the affected objects.

Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).

Returns
  • the order value

public Object invoke (MethodInvocation mi)

Throws
Throwable