1. 首页
  2. 编程语言
  3. Java
  4. java动态代理和cglib动态代理示例分享

java动态代理和cglib动态代理示例分享

上传者: 2022-04-18 00:23:07上传 PDF文件 66.83 KB 热度 26次

我们在上文测试类中的Proxy的newProxyInstance方法中可以看到,该方法第二个参数便是目标类的接口。如果该类没有实现接口,这就要靠cglib动态代理了。CGLib采用非常底层的字节码技术,可以为一个类创建一个子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,并顺势植入横切逻辑。我们首先创建一个代理创建器CglibProxy:然后进行测试:结果与JDK动态代理没有任何区别。JDK动态代理和CGLib动态代理都是运行时增强,通过将横切代码植入代理类的方式增强。与此不同的是AspectJ,它能够在通过特殊的编译器在编译时期将横切代码植入增强,这样的增强处理在运行时候更有优势,因为JDK动态代理和CGLib动态代理每次运行都需要增强。

用户评论