1、依赖

  java.lang.reflect.Proxy  -  提供了静态方法去创建动态代理类的实例;

  Interface InvocationHandler  -  一个代理实例调用处理程序实现的接口

2、编写代理实例处理类

public class InvocationHandlerProxy implements InvocationHandler {
//被代理的接口
private Object target; //获取代理角色
public void setTarget(Object target){
this.target = target;
} //获得一个代理类
public Object getProxy(){
return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
} //处理代理实例,并返回结果
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
log();
Object o = method.invoke(this.target, args);
return o;
} private void log(){
System.out.println("执行前日志");
}
}

3、测试

//真实角色-被代理对象
Landlord landlord = new Landlord();
//实例化代理实例类
InvocationHandlerProxy handlerProxy = new InvocationHandlerProxy();
//设置要代理的对象
handlerProxy.setTarget(landlord);
//生成代理类InvocationHandlerProxy,以被代理对象的接口强转
Sent proxy = (Sent) handlerProxy.getProxy();
//代理真实操作
proxy.rest();

最新文章

  1. 妙味课堂——HTML+CSS基础笔记
  2. angularjs 嵌套控制器,子控制器访问父控制器
  3. SharpDevelop学习笔记(5)—— AddIns系统详解
  4. python 安装mysql-python模块
  5. [codeforces 509]C. Sums of Digits
  6. 使用jquery时弹出[object HTMLImageElement]问题
  7. Python's Exception 层级结构
  8. C# Code for Downloading Stock Symbols z
  9. 计数dp-hdu-4054-Number String
  10. CSS3/HTML5实现漂亮的分步骤注册登录表单
  11. C# 封装-属性
  12. LB 负载均衡的层次结构(转)
  13. ASP.NET Core 运行原理解剖[3]:Middleware-请求管道的构成
  14. 怎么知道我的laravel 是几版本的
  15. probabilistic robotics_Kalman filter(一)
  16. 【细小碎的oi小知识点总结贴】不定时更新(显然也没人看qwq)
  17. use this method get wifi from notebook
  18. servlet_4
  19. mongodb数据库安装及常见操作
  20. Java -- POI -- 入门使用以及简单介绍

热门文章

  1. Java Day2(下)
  2. 2019牛客多校第八场A All-one Matrices 悬线法,单调栈待补
  3. django Warning: (3135, "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes
  4. [AtCoder Code Festival 2017 QualB C/At3574] 3 Steps - 二分图染色,结论
  5. 解决git速度太慢的问题,亲测有效
  6. .NET知识梳理——4.特性Attribute
  7. Vue组件中的Data为什么是函数。
  8. Spring解决bean之间的循环依赖
  9. Android监听消息通知栏点击事件
  10. Linux sed识别HTML标签