У меня есть вопрос, касающийся динамических прокси в Java.
Предположим, у меня есть интерфейс с именем Foo
с методом execute
и классом FooImpl implements 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();
Если прокси-сервер может перехватить вышеупомянутый вызов execute
с интерфейса Foo
, где FooImpl
входит для воспроизведения? Возможно, я смотрю на динамические прокси неправильно. То, что я хочу, - это возможность уловить вызов execute
из конкретной реализации Foo
, такой как FooImpl
. Можно ли это сделать?
Большое спасибо