Guice拦截器调用了两次

时间:2017-11-22 13:36:43

标签: java dependency-injection guice

如果我的注释是

@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD})
public @interface RESTMonitor {
}

如果我在同一个类的类级别和方法级别上使用它。然后我如何限制它只执行一次。现在它被调用了两次。

1 个答案:

答案 0 :(得分:0)

所以你有两个bindInterceptor()次调用,这通常会导致调用两个不同的拦截器。但是如果你将同一个拦截器传递给两个调用,它们将被重复删除:

RESTMonitorMethodInterceptor interceptor = new RESTMonitorMethodInterceptor();
bindInterceptor(Matchers.annotatedWith(RESTMonitor.class), Matchers.any(), interceptor);
bindInterceptor(Matchers.any(), Matchers.annotatedWith(RESTMo‌​nitor.class), interceptor);

(我implemented此功能。)