什么是字节码增强技术
总所周知,执行Java有两个阶段,编译期和运行期,编译期是将Java类型的文件编译为Java字节码文件,也就是class文件;运行期是将字节码文件加载至JVM内存,并最终形成虚拟机可执行的类型。而字节码增强技术则是在运行期通过修改字节码文件,来增强代码性能,减少代码冗余的操作。
实现方式
1.通过创建原始类的子类
2.通过直接修改class文件
应用场景
细想一下字节码增强技术的概念可以发现,运行期修改字节码文件,常见的应用场景包括Spring AOP技术,它的两种代理方式,JDK动态代理和CGLIB其实就是字节码增强技术,通过对类的代理动态生成代理类。