jdk动态代理

interface TargetInterface {public void method();
}class Target implements TargetInterface {@Overridepublic void method() {System.out.println("Target running....");}
}class Target1{private Object target;public Target1(Object target) {this.target = target;}public Object getProxy(){/*newProxyInstance():创建一个代理实例其中有三个参数:1、classLoader:加载动态生成的代理类的类加载器2、interfaces:目标对象实现的所有接口的class对象所组成的数组3、invocationHandler:设置代理对象实现目标对象方法的过程,即代理类中如何重写接口中的抽象方法*/ClassLoader classLoader = target.getClass().getClassLoader();Class<?>[] interfaces = target.getClass().getInterfaces();InvocationHandler invocationHandler = new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {/*proxy:代理对象method:代理对象需要实现的方法,即其中需要重写的方法args:method所对应方法的参数*/System.out.println("前置");Object invoke = method.invoke(target, args);System.out.println("后置");return invoke;}};return Proxy.newProxyInstance(classLoader,interfaces,invocationHandler);}public static void main(String[] args) {Target1 target1 = new Target1(new Target());TargetInterface proxy = (TargetInterface) target1.getProxy();proxy.method();}
}

cglib代理

class Target2 {public void method() {System.out.println("Target running....");}
}class cglib {public static void main(String[] args) {Target2 target2 = new Target2();Enhancer enhancer = new Enhancer();enhancer.setSuperclass(Target2.class);enhancer.setCallback(new MethodInterceptor() {@Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {System.out.println("前置");Object invoke = method.invoke(target2, objects);return invoke;}});Target2 proxy = (Target2) enhancer.create();proxy.method();}
}

jdk动态代理,cglib代理相关推荐

  1. 代理模式——静态代理,动态代理(JDK代理和CGLib代理)

    概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问. 这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介. Java中的代理按照代理类生成时机不同又分为 ...

  2. Spring源码深度解析(郝佳)-学习-jdk代理-cglib代理

    在java中目前主要使用的是jdk代理和cglib代理,这两种代理是Spring AOP的精髓所在,不过在理解Spring AOP之前,先来看看这两种代理的使用. 1. jdk代理使用示例 创建业务接 ...

  3. Spring AOP中的JDK代理和Cglib代理

    JDK动态代理是java JDK自身提供的基于接口的代理,代理类的生成速度快,而代理类的运行速度慢,适合于prototype类型 Cglib代理是基于之类继承的方式的代理,能代理非基于接口的类,适合于 ...

  4. 设计模式-代理模式(jdk代理和cglib代理详解)

    说起代理模式,相信很多人早已经很理解,但对于我这个菜鸟,理解的可能还是不到位,写一次博客加深印象. 什么是代理模式呢?代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要 ...

  5. aop实现原理-动态代理CGLib代理

    那接下来的话,那咱们Spring当中,这个AOP,咱们先说概念,咱们先不写具体代码,咱们就是聊,聊Spring的AOP,Spring能帮我们干啥呢,我告诉你,Spring他作为对象的容器,Spring ...

  6. 静态代理,动态代理,Cglib代理详解

    一.静态代理 新建一个接口 定义一个玩家方法: package com."".proxy.staticc;public interface Iplayer { public voi ...

  7. 第八章Jdk代理 cglib代理

    什么是代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这 ...

  8. 利用代码分别实现jdk动态代理和cglib动态代理_代理模式实现方式及优缺点对比...

    作者:爱宝贝丶来源:https://my.oschina.net/zhangxufeng/blog/1633187 代理模式最典型的应用就是AOP,本文结合主要讲解了代理模式的几种实现方式:静态代理和 ...

  9. 4、MyBatis + Log4j日志查看Sql参数、结果集元数据、Mapper代理开发、JDK的动态代理与CGLib代理

    文章目录 MyBatis优化开发 日志 ResultSet如何转换为Java对象 数据库元数据 结果集元数据 Fastjson 基于MyBatis的DAO开发(传统) 推荐mapper代理开发 JDK ...

  10. JDK动态代理和CGLIB动态代理的异同

    代理模式的概念和静态代理之前的文章已经说过了,没看过的可以点这里. 动态代理意义在于生成一个占位(又称为代理对象),用来代理真实的对象,来控制真实对象的访问. 举个例子,现在有一家软件公司,公司里面有 ...

最新文章

  1. JavaScript document write String content writes nothing o
  2. [caffe]深度学习之CNN检测object detection方法摘要介绍
  3. 中国水泥电杆市场全景调研及发展战略研究报告2022-2028年版
  4. 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(2)(转)
  5. 【CentOS Linux 7】实验1【VMware安装、新建虚拟机;63个基础命令运行结果图】
  6. 计算机七个计算原理,计算机组成原理计算题(7页)-原创力文档
  7. 【C语言及程序设计】项目2-15:模块化的简单银行系统设计
  8. Rider IDE恢复了对.NET Core调试的支持
  9. 宝马奥迪工厂模式_宝马的完整形式是什么?
  10. 免费的React课程,通过构建聊天应用程序来提高您的React JS技能
  11. python token api_python接口自动化之token登录
  12. APP审核关于3.2.1金融资格的审核回复苹果
  13. 基于 GMDSS 的电子海图定位仿真研究
  14. cannot import name 'NPCAP_PATH'
  15. python get请求下载excel_用Python下载Sharepoint Excel文件
  16. C++2048Consose程序
  17. 《java语言程序设计》泽勒一致性问题
  18. vue h5端实现富文本图片预览(基于 Vant 的 ImagePreview 组件)
  19. 视频服务器(4) webrtc-streamer(windows下卡住了)
  20. AE插件:能量激光描边光效特效Saber Mac

热门文章

  1. doubb超时_dubbo超时原理以及解决方案
  2. 万字干货!核心用户获取和运营策略
  3. 选择电容要考虑哪些点?
  4. 优粉吧-微信大号推广微信公众平台大号直发转发自媒体推广
  5. 蓝桥杯习题-2019 第十届-研究生组-RSA加密-java
  6. Chap和pap认证
  7. 软件项目管理【期末模拟卷】
  8. 你偷看的小黄片,全被监视了!网友:隐私早已。。。
  9. java 微信模板_java开发微信模板消息推送
  10. 全国信息化和软件服务业工作座谈会召开