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

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

最佳答案

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

Java如何处理呢?好吧,它是本机完成的,就像reflection的内部结构和许多基本功能一样。因此,您可以使用纯Java模仿此行为。

扩展信息。

10-08 02:19