美文网首页
8,jdk动态代理和CGLIB动态代理的区别

8,jdk动态代理和CGLIB动态代理的区别

作者: 滔滔逐浪 | 来源:发表于2020-07-08 08:03 被阅读0次

    jdk动态代理:
    1,需要拼接java源代码: $proxy.java
    2, 需要将java源代码便以为class文件
    3,采用类加载器读取class文件到程序
    4,采用java反射原理执行我们的目标方法
    反射机制: method.invoke(target,args)
    Cglib动态代理 基于继承我们的目标方法生成代理类对象,(ASM)字节码
    1,直接采用字节码技术生成class
    2,采用类加载器读取class文件到程序
    3,采用fastclass机制调用到我们的目标方法比反射机制效率要高;

    fastclass 对我们的目标对象中所有的方法生成一个索引的标记,直接根据索引调用到我们的目标方法。

    获取索引文件,然后找到代理类,在supper目标方法,ok

    相关文章

      网友评论

          本文标题:8,jdk动态代理和CGLIB动态代理的区别

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