19/08/30动态代理

动态代理书写步骤

  1. 创建接口规范

  2. 创建目标对象

  3. 通过Proxy工具类生产代理对象

  4. 调用者执行代理对象

通过动态代理,可以灵活的对某个方法进行增强,

具体实现步骤(法一)

有一个接口和实现类

  • 创建目标对象
  • 通过Proxy工具类创建代理对象
    类加载器:目标类
    接口数组:目标类实现接口
    处理接口:实现增强的业务逻辑

SingerInterface daili = (SingerInterface) Proxy.newProxyInstance(
实现具体增强逻辑
/*
proxy:工具类生产的代理对象,给调用者使用
method:当前执行具体的方法对象
args:当前执行具体方法传递参数数组
*/~

//对方法执行之前增强
if (method.getName().equals(“方法名”)) {
System.out.println(“方法执行前增强啦”);
}~

//由代理对象调用目标对象的方法(反射)
Object result = method.invoke(xiaJie, args);
//由代理对象将结果返回给调用者~

//对方法执行之后结果增强
if (method.getName().equals(“方法名”)) {
result = “方法后增强” + result;
}~
return result;
)

  • 调用

Lambda实现动态代理方法(法二)

//通过proxy工具类生产代理对象
/*
目标类的加载器
目标类的接口数组
增强处理器接口
/
SingerInterface songzhe = (SingerInterface) Proxy.newProxyInstance(xiaJie.getClass().getClassLoader(), xiaJie.getClass().getInterfaces(),
/

proxy:代理对象
method:当前执行方法对象
args:当前执行方法参数数组
*/
(proxy, method, args) -> {
return null;
});~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值