0

我知道 cglib 代理通过子类化目标类和覆盖目标类的方法来工作。

谁能说出动态代理的工作原理?我知道它使用接口进行代理,但是方法调用究竟是如何通过代理发生的?

4

1 回答 1

1

使用Proxy.newProxyInstance()您可以请求实现所需接口的代理。您还需要传递一个InvocationHandler,每次调用任何代理方法时都会调用它。然后,在您的处理程序中,您知道调用了哪个方法及其参数,因此您可以做您想做的事情,包括使用目标对象。

Java 是如何处理这个问题的?好吧,它是本地完成的,就像reflection许多基本功能的内部结构一样。因此,您可以使用纯 Java 模拟这种行为。

扩展信息在这里

于 2012-10-01T12:09:24.643 回答