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

Java 代理

代理模式:为目标对象(被调用方)提供一个包装类即代理对象,调用方通过调用代理对象来达到调用目标对象的目的,这样就实现调用方与目标对象之间的解耦。

java中的代理模式分为静态代理和动态代理两种。

静态代理编码简单,只要持有目标对象的句柄,实现同样的接口,然后在方法中通过目标对象的句柄调用相应的方法就行了,不过这样有个弊端,就是目标方法一旦多了,那么代理对象方法也得跟着多,这样编写起来就会很繁琐

动态代理编码没有那么繁琐,但是理解起来就没有静态代理那么直观了,动态代理是通过实现InvocationHandler中的invoke方法来实现代理的,这里是java反射的具体应用。Proxy通过newInstance方法产生代理对象,当代理对象执行某一个方法时都会去调用invoke方法,最终实现对目标对象方法调用

动态代理和静态代理在写法上最大的区别就是,静态代理的代理对象是我们自己编写的,动态代理的代理对象是先写代理处理器类(实现InvocationHandler接口的类),然后用Proxy类生成代理对象

AOP面向切面的编程,这是一种概念,意思把多个模块共用的逻辑抽取出来,当做一个公共的模块。像我们平常编写的给各个模块使用的工具类就是这种思想的体现,AOP也可以用动态代理这种方式实现,这个时候AOP中的连接点就是我们的目标对象,我们在这个目标对象前加一层代理,在执行代理方法之前或之后执行的advice就是我们抽取出来的公共逻辑,这种方法的好处在于可以实现增强方法与目标方法之间的解耦,当我们不需增强的方法的时候,直接在配置文件中把增强方法去掉就行了

http://www.gsyq.cn/news/30744.html

相关文章:

  • 《算法与数据结构》第七章[算法2]:广度优先搜索(BFS) - 指南
  • 中转API为什么比官方更便宜?AI中转站成本揭秘
  • Java 混合编程
  • Java 语法糖
  • 纸笔群群友命题乱做
  • 本人对KMP如何匹配到所有结果的算法存在一些疑惑...
  • 完整教程:京东100道GO面试题及参考答案(上)
  • Ubuntu 系统 /dev/sdb2(RAID 关联磁盘)挂载操作手册
  • 解决 Windows 下 Claude 通过 cmd/powershell 运行出错失去响应的问题
  • 25.10.25随笔NOIP模拟赛总结
  • 师生健康信息管理高效的系统|基于SpringBoot和Vue的师生健康信息管理系统(源码+数据库+文档)
  • 手势检测(充满科技感) - 实践
  • 2025 年 10 月商用厨房设备,酒店厨房设备,大型厨房设备厂家最新推荐,聚焦高端定制需求与全案交付能力
  • 251026
  • sometime some time sometimes
  • 关于容斥原理
  • 可变字符串
  • 2025 年 10 月展示柜厂家最新推荐,精准检测与稳定性能深度解析!
  • 一些疑问
  • 2025 年 10 月外墙涂料厂家最新推荐,高性能与可靠性兼具的优质品牌
  • 2025 年 10 月外墙涂料厂家最新推荐,聚焦高端定制需求与全案交付能力
  • 深度神经网络 —— 使用RNN循环神经网络进行手写数字识别分类
  • 2025 年 10 月外墙涂料厂家最新推荐,精准检测与稳定性能深度解析
  • 2025年10月遗产继承律师对比榜:五强排名与实测解析
  • 2025年10月中国短视频制作公司排行榜:五强实测推荐
  • php_md5特性
  • 「学习笔记」RCE基础
  • ajax回调钩子的应用简介
  • PS-02
  • 2020 级课前测试试卷-电子商务大数据分析 爬取京东商品评论数据,基于hadoop实现数据分析以及数据可视化