javax.interceptor.AroundInvoke Maven / Gradle / Ivy
package javax.interceptor;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* Defines a method which intercepts invocation of another method. The annotated method must not be final, must not be
* static, and must accept exactly one parameter of type {@link InvocationContext}, returning an {@link Object}.
*
* The annotation may be applied a method of the target class (or a superclass thereof), or to a method of any
* interceptor class; however only one method of the class may be so annotated.
*
* An {@code @AroundInvoke} interceptor method can invoke any component or resource that the method it is intercepting
* can invoke. In particular, the same transaction and security contexts apply to the interceptor method as to the
* intercepted method.
*/
@Target(METHOD)
@Retention(RUNTIME)
public @interface AroundInvoke {}