1.概述
转载来源于:小傅哥的字节码编程-(公众号:bugstack虫洞栈)
在字节码编程方面有三个比较常见的框架; ASM 、 byte-buddy 、 Javassist ,他们都可以对这字节码进行操作,只是操作方式和控制粒度不同。
其中 ASM 更偏向于底层,需要了解 JVM 虚拟机中指定规范以及对局部变量以及操作数栈的知识。虽然在编写起来比较麻烦,但是它也是性能最好功能最强的字节码操作框架。常见的会用在 CGLIB 动态代理类中,以及一些非入侵的探针监控场景中。
// 输出方法新字节码
outputClazz(bytes, MethodTest.class.getSimpleName()