- jdk 动态代理需要目标类实现接口, 而 cglib 需要目标类是非 final 修饰的, 不需要目标类实现接口
- jdk 动态代理 代理实现 InvocationHandler , cglib 代理实现 MethodInterceptor
- jdk 动态代理利用反射, cglib 是加载 class, 修改字节码, 生成子类
spring 默认使用 jdk 动态代理, 如果目标类没有实现接口, 那么会使用 cglib 代理
spring 默认使用 jdk 动态代理, 如果目标类没有实现接口, 那么会使用 cglib 代理