JDK动态代理

时间:2012-10-01 11:51:33

标签: java proxy aop proxy-classes

我知道cglib代理通过继承目标类并覆盖目标类的方法来工作。

有人能说出动态代理的确切运作方式吗? 我知道它使用接口进行代理,但是如何通过代理完成方法调用?

1 个答案:

答案 0 :(得分:1)

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

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

扩展信息here