proxy 动态代理

简介: 1.简介 问:什么是代理? 答:有一个对象a,你想用另一个对象b来做他的代理,那么b叫做代理对象,a叫做被代理对象。 问:为什么要使用代理? 答:所以我们不再直接跟a打交道,只需跟代理对象打交道即可。代理对象可以为我们提供额外的或不同的操作。 按照代理对象的创建时期不同,可以分为两种。 静态代理,事先写好代理对象类,在程序发布前就已经存在了;动态代理,程序发布后,动态地创建代理

1.简介

:什么是代理?

答:有一个对象a,你想用另一个对象b来做他的代理,那么b叫做代理对象,a叫做被代理对象

:为什么要使用代理?

答:所以我们不再直接跟a打交道,只需跟代理对象打交道即可。代理对象可以为我们提供额外的或不同的操作。

按照代理对象的创建时期不同,可以分为两种。
静态代理,事先写好代理对象类,在程序发布前就已经存在了;动态代理,程序发布后,动态地创建代理对象。
动态代理又可分为JDK代理和CGLIB代理。

:JDK代理和CGLIB代理有何不同?

答:JDK代理,只能针对实现了接口的类生成代理。CGLIB代理,针对类实现代理,背后是继承。如果一个类是final的,那代理也无能为力。

2.jdk代理

2.1常用函数

Object java.lang.reflect.Proxy. newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)
用来生成代理对象。
java.lang.reflect. InvocationHandler
接口。它有一个函数,见下:
Object java.lang.reflect.InvocationHandler. invoke(Object proxy, Method method, Object[] args) 
在对代理对象调用函数时,此函数被回调。返回值就是调用函数的返回值。

2.2用法

写一个类Handler实现InvocationHandler接口,它的一个成员变量作为被代理对象,一般通过构造函数传入。

2.3代码示例

3.cglib代理


目录
相关文章
|
Linux 编译器 Android开发
linux交叉编译nss3,nspr库精讲
linux交叉编译nss3,nspr库精讲
534 1
|
人工智能 定位技术 图形学
CorelDRAW2021SE标准版下载安装图文教程
CorelDRAW® Graphics Suite2022订阅版涵盖了全部CorelDRAW图形处理组件,能够高效地完成矢量插图、布局、照片编辑和排版等项目,无论是个人用户还是大型企业,订阅版可以满足几乎所有设计从业者的工作需要,并且将免费获得在订阅周期内的所有更新。
1309 0
|
5月前
|
人工智能 算法 数据可视化
机器人训练师狂喜!Infinite Mobility:上海AI Lab造物神器1秒生成可动家具,成本只要1分钱
上海AI Lab推出的Infinite Mobility采用程序化生成技术,可高效生成22类高质量可交互物体,单个生成仅需1秒且成本低至0.01元,已应用于机器人仿真训练等领域。
178 2
机器人训练师狂喜!Infinite Mobility:上海AI Lab造物神器1秒生成可动家具,成本只要1分钱
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
《鸿蒙Next的AI声音修复功能:多类型音频处理的卓越表现》
鸿蒙Next的AI声音修复功能针对不同类型的音频文件提供卓越的处理效果。对于语音类音频,它能显著提升发音清晰度和可懂度,改善交流质量;音乐类音频则通过优化音质和增强细节,还原原始情感;环境音类音频中,AI有效去除背景噪音,提取纯净自然声音;对特殊格式如MIDI,先转换为实际音频再进行优化。总体而言,该功能根据不同音频特点进行针对性修复,全面提升用户体验。
604 62
|
6月前
|
人工智能 运维 云计算
全新无影,来了!
全新无影,来了!
|
10月前
|
缓存 前端开发 数据安全/隐私保护
Flutter 框架提供了丰富的机制和方法来优化键盘处理和输入框体验
在移动应用开发中,Flutter 框架提供了丰富的机制和方法来优化键盘处理和输入框体验。本文深入探讨了键盘的显示与隐藏、输入框的焦点管理、键盘类型的适配、输入框高度自适应、键盘遮挡问题处理及性能优化等关键技术,结合实例分析,旨在帮助开发者提升应用的用户体验。
410 6
|
10月前
|
安全 网络安全 网络架构
解释子网为零和全一子网:概念、原理与应用
解释子网为零和全一子网:概念、原理与应用
278 1
|
11月前
|
运维 安全 数据挖掘
《实时计算 Flink 版产品评测》
在大数据时代背景下,这篇报告深入评测了实时计算Flink版产品。通过电商平台用户行为数据的实时分析,验证了其出色的稳定性和高性能,尤其在处理大规模数据流方面表现出色。相较于自建集群和其他引擎,该产品不仅简化了开发运维流程,还提供了强有力的安全保障,并采用按需付费模式降低企业成本。此外,其详尽的文档和直观的引导机制进一步提升了用户体验。然而,对于未来,报告也提出了一些改进建议,比如进一步提升性能及拓展更多功能等。
142 1
|
11月前
|
搜索推荐 Java Go
深入了解归并排序算法
深入了解归并排序算法
165 0
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(一)(1)
Transformers 4.37 中文文档(一)
262 1