当前位置: 首页 > news >正文

代理(静态和动态)

一种设计模式,提供对目标对象的另外一种访问方式,通过代理对象访问目标对象

1.静态代理

代理类和目标类共同实现同一个接口

实现例子:

接口:

代理类:

目标类:

测试类:

2.动态代理 :基于jdk的动态代理和基于cglib的动态代理

1.jdk的动态代理(必须有接口)

前后服务不能写入已经写好的代理类里,所以要有个专门写增强逻辑的代码;

代理类不是自己写的,直接拿着代理类去创建对象

例子:测试类:

目标类:

增强规则类:

接口类:

静态代理和jdk动态代理区别:

静态代理:自己手写代理类 Java 文件,编译就存在。接口加新方法,代理类必须手动重写,增强代码分散在各个方法,复用差。直接对象调用,不用反射。

JDK 动态代理不手写代理类,运行时 JDK 在内存自动生成代理类字节码。只写InvocationHandler,所有方法的增强全部写在invoke()一处;接口新增方法不用改代理代码,复用性强;底层靠反射执行目标方法。

2.基于cglib的代理(不能代理被final实现的类或方法)

原理:通过继承在继承目标方法的基础上实现更多的逻辑

例子:

CGLIB拦截回调类 CallbackMethod

jdk和cglib动态代理区别:

jdk动态:1.代理对象实现目标接口类 2.原生jdk,无需额外包 3.必须有接口

cglib动态:1.代理对象是目标类的子类 2.需要第三方cglib asm 3.不需要接口,不能代理final类/final方法

http://www.jsqmd.com/news/1392445/

相关文章:

  • 2026年消防设施操作员证报名入口,正规报考中心报名通道汇总 - 中科资质认证报考中心
  • 硬件测试内容之十三:LDO(芯片)
  • 郑州考公党必看!大学生毕业后档案存放流程!不用线下跑! - 实时传讯
  • 完整入门vscode-mermaid-preview:3步实现Mermaid图表实时预览与高清导出
  • 不同传感器前中后融合方案简介
  • 2026 年太原空调加氟空调出售,中央空调维修怎么预约? - LYL仔仔
  • Kettle数据迁移全复盘:从旧系统到新平台的8条实战经验清单
  • 手把手教你学 Simulink—— 整流器电磁干扰(EMI)滤波器设计与传导骚扰仿真
  • 【AI智能体速通】05.Agentic AI
  • Kimi LeetCode 3901. 好子序列查询 Python3实现
  • gcc编译器,以及源文件的翻译
  • 如何筛选靠谱的线上投票平台?2026年全场景通用投票工具深度评测
  • 从英语到斯瓦希里语,AI功能机的多语言适配怎么做?
  • POB汉化工具 PoeCharm 完整上手:3步安装与天赋技能配置实测
  • AI-实践 开发日志
  • 中国路况,中国速度——佳研 AI 让汽车碰撞仿真不再“卡脖子” - 2027品牌AI展
  • AI论文指令大合集:deepseek,kimi,豆包等各AI工具齐齐发力,轻松搞定论文写作难题
  • Databricks中用PySpark找到表里的最短唯一键
  • notepad-- 文件对比实战指南:3 步上手差异比对,5 个技巧让代码核查快 10 倍
  • TVA-具身智能最新进展(3):主动视觉感知提升实时性
  • 个体自发用 AI 提效已是职场常态,企业统一推进为何反而频频遇阻
  • 武汉江夏初中毕业生技术学校推荐 i3D AI 三维专业本地可参观试学 - 荆楚笔记
  • GHelper完整使用指南:如何用一个轻量小工具接管华硕笔记本性能控制
  • 合并报表系统有哪些?6家服务商能力对比与选型建议
  • Windows Defender 移除完整指南:三档移除深度与一次 ISO 实战演示
  • OpenBMC:WebUI 与后端接口交互流程
  • OneNote 笔记搬家到 Markdown:用 onenote-md-exporter 一劳永逸的完整教程
  • 【GitOps·入门篇】工具生态:ArgoCD、Flux、Jenkins X 对比选型
  • 2026年智慧步道建设指南:从硬件到运营的全链路解析
  • 聊天记录都在,模型为什么还是会“忘记”?