java 静态代理 动态代理
不明白java的静态代理和动态代理 最好能用通俗的语言和实例的结合说明,我希望的我的帖子可以让大家讨论,不怕拍砖。。。。 java 静态代理 动态代理 --------------------编程问答-------------------- 静态代理,就是用一个代理类实现需要被代理类的接口。 并且在代理类中还需要一个被代理类的实例Obj。 代理类实现的方法 全部让Obj对应的方法去完成。 如果有需要,可以在Obj调用方法之前或之后加上自己的代码。JDK动态代理就是继承 InvocationHandler 通过重写invoke方法来实现代理。 被代理的类所有方法,都是通过invoke方法来调用。 所以在invoke方法中可以加上自己的处理,并且对被代理类所有方法有效。
上面两种方式都需要被代理类实现了接口。
如果没有实现接口就要用cglib来代理了。
它会通过反射得到需要被代理类的所有方法 ,然后根据这些方法 通过字节码的方式生成一个接口。 然后将该实现类load到内存中时候,接下来的步骤跟JDK动态代理差不多了。
补充:Java , Java EE