Java中的动态代理

本文详细介绍了动态代理的概念、为何需要代理、如何创建代理对象以及在用户管理中的应用场景。通过实例展示,讲解了如何使用代理来转移对象职责和优化性能统计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是代理

程序为什么需要代理

对象如果认为身上干的事太多,可以通过代理来转移部分职责;
对象有什么方法想被代理,代理就一定要有对应的方法

使用接口实现,生成代理

例子

在这里插入图片描述
创建代理工具类ProxyUtil
使用静态方法createProxy产生代理:
使用Proxy.newProxyInstance();可以得到一个代理对象
需要三个参数:
ClassLoader,用于指定一个类加载器,写法固定;
Class<?>[] interfaces,指定生成的代理长什么样子,也就是有哪些方法
InvocationHandler,用来制定生成的代理对象要干什么事情
在这里插入图片描述
可简化:
在这里插入图片描述
测试类:
在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述

如何创建代理对象

在这里插入图片描述

应用场景

案例

使用代理优化用户管理类

场景:

  • 某系统有一个用户管理类,包含用户登录,删除用户,查询用户,查询用户等功能,系统要求统计每个功能的执行耗时情况,以便观察后期程序性能。 需求:
  • 现在,某个初级程序员已经开发好了该模块,请观察该模块代码,找出目前存在的问题,并对其进行改造
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值