Java Guice中的多方法拦截

Java Guice中的多方法拦截,java,guice,method-interception,Java,Guice,Method Interception,我正在使用Guice的方法拦截功能。我需要知道的是如何正确实现多个拦截器,形式如下: this.bindInterceptor(Matchers.any(), Matchers.any(), new Interceptor1(), new Interceptor2()); 具体来说,如果两个拦截器中都有对procedure()的调用,会发生什么?被拦截的方法会被调用两次吗?或者第一个拦截器中的procedure()是否调用第二个拦截器,然后第二个拦截器调用该方法?或者应该只有一个拦截器有一个p

我正在使用Guice的方法拦截功能。我需要知道的是如何正确实现多个拦截器,形式如下:

this.bindInterceptor(Matchers.any(), Matchers.any(), new Interceptor1(), new Interceptor2());
具体来说,如果两个拦截器中都有对procedure()的调用,会发生什么?被拦截的方法会被调用两次吗?或者第一个拦截器中的procedure()是否调用第二个拦截器,然后第二个拦截器调用该方法?或者应该只有一个拦截器有一个procedure()

谢谢

两个拦截器都可以(也应该)调用
继续
。通过这种方式,它们可以用作独立的方面(即事务和日志)。事实上,如果您没有从外部拦截器调用继续,那么下一个拦截器将不会启动

方法拦截器将根据
bindInterceptor
调用的顺序以类似堆栈的方式调用。在您的示例中,它将如下所示:

Interceptor1 entry
Interceptor1 proceed
  Interceptor2 entry
  Interceptor2 proceed
    Method
  Interceptor2 exit
Interceptor1 exit

我理解拦截器的顺序,但我不知道什么时候应该由procedure()触发方法本身。这是我的直觉,但我想确定。谢谢