1、JDK 的动态代理:针对实现了接口的类产生代理 (Proxy+InvocationHandler)
2、Cglib 的动态代理 :针对没有实现接口的类产生代理. 应用的是底层的字节码增强的技术生成当前类的子类对象 (MethodInterceptor)
-- Cglib是一种代码生成包
如上图:最底层是字节码,是JVM跨平台产生的虚拟指令格式(区别机器码)
字节码之上是ASM,是直接操作字节码的框架
ASM之上是Cglib等,它们可以通过ASM框架生成字节码
2024-03-21 15:52:34
1、JDK 的动态代理:针对实现了接口的类产生代理 (Proxy+InvocationHandler)
2、Cglib 的动态代理 :针对没有实现接口的类产生代理. 应用的是底层的字节码增强的技术生成当前类的子类对象 (MethodInterceptor)
-- Cglib是一种代码生成包
如上图:最底层是字节码,是JVM跨平台产生的虚拟指令格式(区别机器码)
字节码之上是ASM,是直接操作字节码的框架
ASM之上是Cglib等,它们可以通过ASM框架生成字节码