Cglib原理:

动态生成要代理类的子类,重写要代理类所有非final 方法,子类采用拦截的技术 拦截所有父类方法的调用,织入横切逻辑。

JDK原理:

对要代理的类所是实现的接口中,所有的方法进行代理。

对比:

Cglib 底层采用ASM字节码生成框架,使用字节码生成代理类 。
Jdk 使用反射类Proxy 和 InvocationHandler 回调接口实现的。 所以 Cglib比Jdk效率高

Jdk代理是基于接口,cglib 是jdk代理的补充,性能比jdk高。