У меня есть вопрос, касающийся динамических прокси в java.
Предположим, у меня есть интерфейс под названием Foo
с методом execute
и класс FooImpl реализует Foo
.
Когда я создаю прокси для Foo
, я получаю что-то вроде:
Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
new Class[] { Foo.class },
handler);
Предположим, мой обработчик вызова выглядит так:
public class FooHandler implements InvocationHandler {
public Object invoke(Object proxy, Method method, Object[] args) {
...
}
}
Если мой код вызова выглядит примерно как
Foo proxyFoo = (Foo) Proxy.newInstance(Foo.getClass().getClassLoader(),
new Class[] { Foo.class },
new FooHandler());
proxyFoo.execute();
Если прокси-сервер может перехватить вышеупомянутый вызов , выполните
из интерфейса Foo
, откуда появляется FooImpl
играть? Возможно, я неправильно смотрю на динамические прокси. Я хочу иметь возможность перехватить вызов execute
из конкретной реализации Foo
, такой как FooImpl
. Можно ли это сделать?
Большое спасибо