我正在尝试使用guice实现方法拦截。 我希望能够注释方法并拦截它们,并且在尝试调用bindInterceptor时遇到错误。
错误是: 方法bindInterceptor(Matcher,Matcher,MyInterceptor)未定义MyModule类型
我做错了吗?
public class MyInterceptor implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation arg0) throws Throwable {
return arg0.proceed();
}
}
public class MyModule extends AbstractModule {
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD)
@interface MyAnnotation {}
@Override
protected void configure() {
// I get an error on this line
bindInterceptor(Matchers.any(), Matchers.annotatedWith(MyAnnotation.class),
new MyInterceptor());
}
}
答案 0 :(得分:3)
此错误通常是因为import
,Matchers
或AbstractModule
之一导致错误MethodInterceptor
而导致错误。
这三种产品的进口线是什么?你应该:
import com.google.inject.AbstractModule;
import com.google.inject.matcher.Matchers;
import org.aopalliance.intercept.MethodInterceptor;