动态代理。就是不用自己写代理类,只要实现接口就行了。

动态代理,这里介绍两种:jdk and cglib

第一个jdk

//一个接口类
public interface Book{void read(String name);
}//一个实现类
public class BookImpl implements Book{@Overridepublic void read(String name){System.out.println(name);}
}//实现一个一个代理类接口
public class MyInvocationHandler implements InvocationHandler{private Object target;public MyInvocationHandler(Object target){this.target =target ;}@Overridepublic Object invoke(Object o,Method method,Object[] args)throws Throwable{return method.invoke(target,args);}
}//测试方法
Public class Main{
public static void main(String args[]){Book bookImpl = new BookImpl;Object obj = Proxy.newProxyInstance(bookImpl.getClass,)book,getClss().getInterface(),new myInvocation}

cglib

//一个实现类
public class BookImpl {@Overridepublic void read(String name){System.out.println(name);}
}//实现一个一个代理类接口
public class MyInsterceptor implements MethodIntao{private Object target;public MyInvocationHandler(Object target){this.target =target ;}@Overridepublic Object intercept(Object o,Method method,Object[] args,MethodProxy myInterce)throws Throwable{return method.invoke(target,args);}
}//测试方法
Public class Main{
public static void main(String args[]){BookImpl book = new BookImpl();Enhancer enhancer = new Enhancer();enhancer.setSuperClass (book.getClass);enhancer.setCallback(new MyInterceptor(book))BookImpl b = (BookImpl)enhancer.create();
}

转载于:https://www.cnblogs.com/LixiaoFeng1650062546/p/11493787.html

代理模式(动态代理)相关推荐

  1. 【设计模式】代理模式 ( 动态代理 | 模拟 Java 虚拟机生成对应的 代理对象 类 )

    文章目录 前言 一.模拟 JVM 生成对应的 代理对象 二.模拟 JVM 生成对应的 代理对象 完整流程展示 1.目标对象接口 2.被代理对象 3.调用处理程序 4.模拟 JVM 生成的代理对象类 5 ...

  2. 红橙Darren视频笔记 代理模式 动态代理和静态代理

    红橙Darren视频笔记 代理模式 动态代理和静态代理(Android API 25) 关于代理模式我之前有过相关的介绍: https://blog.csdn.net/u011109881/artic ...

  3. 【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )

    文章目录 前言 一.静态代理的弊端 二.动态代理的优势 三.动态代理使用流程 1.目标对象接口 2.被代理对象 3.调用处理程序 4.客户端 四.动态生成 代理对象 类 的 字节码 文件数据 前言 代 ...

  4. Proxy 代理模式 动态代理 CGLIB

    代理的基本概念 几个英文单词: proxy [ˈprɒksi] n. 代理服务器:代表权:代理人,代替物:委托书: invoke [ɪnˈvəʊk] vt. 乞灵,祈求:提出或授引-以支持或证明:召鬼 ...

  5. Java设计模式-之代理模式(动态代理)

    一.简介 1.什么叫代理模式:        简而言之就是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起 ...

  6. 【设计模式】代理模式 ( 动态代理 )

    文章目录 一.动态代理使用流程 二.动态代理代码示例 1.订单类 2.Service 接口 3.Service 实现类 4.Service 静态代理类 5.Dao 接口 6.Dao 实现类 7.Ser ...

  7. Spring AOP中的静态代理和动态代理的原理和实践

    对于最近博主最近写博客的兴致大发,我也在思考:为什么而写博客?在互联网时代,无论你是牛人大咖,还是小白菜鸟,都有发表自己看法的权利.无论你是对的还是错的,都会在这个平台上找到答案.所以,我会尽可能去写 ...

  8. 【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理

    这篇博文,我们主要以类图和代码的形式来对照学习一下静态代理和动态代理.重点解析各自的优缺点. 定义 代理模式(Proxy Pattern)是对象的结构型模式,代理模式给某一个对象提供了一个代理对象,并 ...

  9. 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

最新文章

  1. HTTP 状态代码及其定义
  2. LoadRunner系统架构简介与运行原理
  3. ASP.NET Core Web 支付功能接入 微信-扫码支付篇
  4. 朱政:金山H.265诞生记
  5. word论文排版插件_教你如何用word快速搞定论文排版
  6. jquery autocomplete的使用
  7. HTTP相关知识的总结
  8. Hoodie旨在成为开源最多样化和包容性社区之一
  9. threejs 形状几何体_ThreeJS学习笔记(五)——二维几何体元素及穿梭动画
  10. 体验c#面向对象的编程
  11. UI-12组结对编程作业总结
  12. python-最速下降法
  13. 「小车看百度,大车看深兰」,自动驾驶公交驶向千亿蓝海市场
  14. 最详细AMD Ryzen CPU,VMware安装macOS(虚拟机安装黑苹果)文章索引
  15. 外滩画报:揭秘全球电子垃圾坟墓
  16. 喜讯!双驰企业正式成为欧盟地平线2020 项目合作伙伴
  17. jdk1.8,64位linux版本下载路径.永久免费.这是一个爱分享的世界...
  18. 省钱兄(APP+H5+公众号+小程序)自营商城源码分销系统社区团购线上线下核销吃喝玩乐系统源码前端模板
  19. luogu1979 华容道
  20. 赵小楼《天道》《遥远的救世主》解读(12)丁元英操盘私募基金这事

热门文章

  1. java异常机制_全面理解java异常机制
  2. python列表的排序方法是_Python列表排序 reverse、sort、sorted 操作方法详解
  3. shellcode执行盒_简单shellcode学习
  4. dbf如何导入oracle_Oracle软件的安装介质被注入恶意程序事件分析与防御
  5. 华中农业大学C语言实验5答案,物理实验报告册(上册)-华中农业大学实验.pdf
  6. 收集:Hibernate中常见问题 No row with the given identifier exists问题的原因及解决
  7. cygwin-1.7 离线安装包_【软件安装管家】ArcGIS 10.7 软件安装包+安装教程
  8. 网络摄像头转usb接口_同时读取多个摄像头数据(包括海康网络摄像头和USB摄像头)...
  9. 高质量linux c编程指南,《linux c编程指南》学习手记5
  10. VS2019调试查看变量_机器人调试(六十六)