当前位置:编程学习 > JAVA >>

java 静态代理 动态代理

不明白java的静态代理和动态代理 最好能用通俗的语言和实例的结合说明,我希望的我的帖子可以让大家讨论,不怕拍砖。。。。 java  静态代理 动态代理 --------------------编程问答-------------------- 静态代理,就是用一个代理类实现需要被代理类的接口。 并且在代理类中还需要一个被代理类的实例Obj。 代理类实现的方法 全部让Obj对应的方法去完成。  如果有需要,可以在Obj调用方法之前或之后加上自己的代码。

JDK动态代理就是继承 InvocationHandler 通过重写invoke方法来实现代理。 被代理的类所有方法,都是通过invoke方法来调用。 所以在invoke方法中可以加上自己的处理,并且对被代理类所有方法有效。

上面两种方式都需要被代理类实现了接口。

如果没有实现接口就要用cglib来代理了。
它会通过反射得到需要被代理类的所有方法 ,然后根据这些方法 通过字节码的方式生成一个接口。 然后将该实现类load到内存中时候,接下来的步骤跟JDK动态代理差不多了。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,