java 既然动态代理要传一个真实的对象,那为什么还要生成一个代理对象去调用方法呢?

2025-04-14 21:37:29
推荐回答(2个)
回答1:

楼主您好,代理对象往往在真实方法实行抑或前抑或后抑或抛异常等时候做了一些“额外”的操作,这就是spring的aop原理实现,比如我需要调每个方法都要记录日志,那么我是不是整个系统里几百个方法里面没个之前都要加一句记录日志的方法呢?而用代理模式就可以我只关注我的业务,用代理类来帮我实现这个记录日志的方法

回答2:

Proxy。newInstance方法是使用ProxyGenerator来动态生成字节码的,生成的是字节码所以没有编译过程。 通过ProxyGenerator生成的字节码代表的类继承了Proxy类