Java - перехватывать методы, используя guice? - PullRequest
0 голосов
/ 05 декабря 2011

Я пытаюсь реализовать перехват метода с помощью 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());
    }
}

1 Ответ

3 голосов
/ 06 декабря 2011

Эта ошибка обычно является результатом неправильного набора import для одного из Matchers, AbstractModule или MethodInterceptor.

Каковы строки импорта для этих трех? Вы должны иметь:

import com.google.inject.AbstractModule;
import com.google.inject.matcher.Matchers;
import org.aopalliance.intercept.MethodInterceptor;
...