• Javassist学习总结


    今天在弄dubbo时出现了一个依赖缺少问题,就好奇研究一下,这个依赖是啥.

    javassist是一个字节码类库,可以用他来动态生成类,动态修改类等等

    1.介绍Javassist

      要想将编译时不存在的类在运行时动态创建并加载,通常有两种策略:

      1.      动态编译

      2.      动态生成二进制字节码(.class)

      对于第二种策略,实际上已经有诸多比较成熟的开源项目提供支持,如CGLib、ASM、Javassist等。这些开源项目通常都具备两方面的功能:

      1.      动态创建新类或新接口的二进制字节码

      2.      动态扩展现有类或接口的二进制字节码

      其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令;相比而言,Javassist要简单的多,完全是基于Java的API,但其性能相比前二者要差一些。

      尽管如此,在性能要求相对低的场合,Javassist仍然十分有用,如JBoss中就调用了Javassist。

    2.使用

      参考的一个链接:

      http://yonglin4605.iteye.com/blog/1396494

      http://zhxing.iteye.com/blog/1703305

      http://jboss-javassist.github.io/javassist/

  • 相关阅读:
    asp.net web api KnownTypeAttribute
    nodejs 递归创建目录
    nodejs 复制、移动文件
    windows cmd命令行下创建文件和文件夹
    nodejs http静态服务器
    C# Socket TCP Server & Client & nodejs client
    gem 安装nokigiri
    nsis 固定到任务栏
    SpringBoot整合JPA
    Freemaker FTL指令常用标签及语法
  • 原文地址:https://www.cnblogs.com/juncaoit/p/7909688.html
Copyright © 2020-2023  润新知