美文网首页
动态代理

动态代理

作者: 魂之挽歌w | 来源:发表于2018-01-21 20:42 被阅读3次

    静态代理:代理类是在编译时就实现好的。也就是说 Java 编译完成后代理类是一个实际的 class 文件。

    动态代理:代理类是在运行时生成的。也就是说 Java 编译完之后并没有实际的 class 文件,而是在运行时动态生成的类字节码,并加载到JVM中。

    动态代理实质:两组静态代理组合!动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类的函数

    Java实现动态代理的大致步骤如下

    1.定义一个委托类和公共接口。

    2.自己定义一个类(调用处理器类,即实现InvocationHandler接口),这个类的目的是指定运行时将生成的代理类需要完成的具体任务(包括Preprocess和Postprocess),即代理类调用任何方法都会经过这个调用处理器类(在本文最后一节对此进行解释)。

    3.生成代理对象(当然也会生成代理类),需要为他指定(1)委托对象(2)实现的一系列接口(3)调用处理器类的实例。因此可以看出一个代理对象对应一个委托对象,对应一个调用处理器实例。

    相关文章

      网友评论

          本文标题:动态代理

          本文链接:https://www.haomeiwen.com/subject/mzvqaxtx.html