Guice post执行方法拦截

时间:2015-10-18 07:00:40

标签: aop guice

在Guice中,在执行截获的方法之后(而不是之前),有没有办法让我的MethodInterceptor::invoke实现被调用

我已将当前代码添加到AbstractModule

bindInterceptor(Matchers.subclassesOf(InterceptedClass.class), Matchers.annotatedWith(MyMethodAnnotation.class), new MyMethodInterceptor());

1 个答案:

答案 0 :(得分:4)

要在拦截器中调用方法后执行代码(这不仅适用于Guice),您必须使用try / finally组合:

public Object invoke(MethodInvocation invocation) throws Throwable {
   try {
      // code run before execution

      return invocation.proceed();
   } finally {
      // code run after execution
   }
}