Interface MethodInterceptor

All Superinterfaces:
Advice, Interceptor
All Known Subinterfaces:
All Known Implementing Classes:
AbstractMonitoringInterceptor, AbstractTraceInterceptor, AfterReturningAdviceInterceptor, AnnotationAsyncExecutionInterceptor, AspectJAfterAdvice, AspectJAfterThrowingAdvice, AspectJAroundAdvice, AsyncExecutionInterceptor, CacheInterceptor, ConcurrencyThrottleInterceptor, CustomizableTraceInterceptor, DebugInterceptor, DelegatePerTargetObjectIntroductionInterceptor, DelegatingIntroductionInterceptor, EventPublicationInterceptor, ExposeInvocationInterceptor, JCacheInterceptor, MBeanClientInterceptor, MBeanProxyFactoryBean, MethodBeforeAdviceInterceptor, MethodValidationInterceptor, OpenSessionInterceptor, PerformanceMonitorInterceptor, PersistenceExceptionTranslationInterceptor, SimpleTraceInterceptor, ThrowsAdviceInterceptor, TransactionInterceptor
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface MethodInterceptor extends Interceptor
Intercepts calls on an interface on its way to the target. These are nested "on top" of the target.

The user should implement the invoke(MethodInvocation) method to modify the original behavior. E.g. the following class implements a tracing interceptor (traces all the calls on the intercepted method(s)):

 class TracingInterceptor implements MethodInterceptor {
   Object invoke(MethodInvocation i) throws Throwable {
     System.out.println("method "+i.getMethod()+" is called on "+
                        i.getThis()+" with args "+i.getArguments());
     Object ret=i.proceed();
     System.out.println("method "+i.getMethod()+" returns "+ret);
     return ret;
Rod Johnson
  • Method Summary

    Modifier and Type
    Implement this method to perform extra treatments before and after the invocation.
  • Method Details

    • invoke

      @Nullable Object invoke(@Nonnull MethodInvocation invocation) throws Throwable
      Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invoke Joinpoint.proceed().
      invocation - the method invocation joinpoint
      the result of the call to Joinpoint.proceed(); might be intercepted by the interceptor
      Throwable - if the interceptors or the target object throws an exception