打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JDK静态代理、动态代理、CGLIB代理之实例

1、静态代理

a、定义个接口

b、实现类

c、添加一个静态代理类Proxy

d、测试实现

2、JDK动态代理

a、添加一个代理JDKProxy,该代理实现InvocationHandler接口且覆写invoke方法。

b、测试实现

3、Cglib动态代理

a、添加一个CglibProxy代理,同时实现MethodInterceptor接口。

b、测试实现

总结:

jdk静态代理类只能为一个被代理类服务,如果需要代理的类比较多,那么会产生过多的代理类。jdk静态代理在编译时产生class文件,运行时无需产生,可直接使用,效率好。

jdk动态代理必须实现接口,通过反射来动态代理方法,消耗系统性能。但是无需产生过多的代理类,避免了重复代码的产生,系统更加灵活。

cglib动态代理无需实现接口,通过生成子类字节码来实现,比反射快一点,没有性能问题。但是由于cglib会继承被代理类,需要重写被代理方法,所以被代理类不能是final类,被代理方法不能是final。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring高级程序设计 5 Spring AOP基础
从代理机制到Spring AOP
浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试
通俗易懂详解Java代理及代码实战
项目问题记录(一)controll私有方法问题
Java动态代理设计模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服