代理

     首先应该明确两个概念

       代理对象:对访问目标对象进行拦截的对象

       目标对象:实际要访问的对象

      代理的作用

          可以用对方法的加强;

     动态代理demo

    

//目标对象
public class Target implements Itarget{@Overridepublic void test1() {System.out.println("目标对象的test1()");}}

  

//代理对象
public class ProxyDemo1 {@Testpublic void test1(){//创建动态代理对象final Target tar=new Target();//在匿名内部类被调用,加final修饰Itarget newProxyInstance =  (Itarget) Proxy.newProxyInstance(tar.getClass().getClassLoader(), //传递一个和目标一致的类加载器tar.getClass().getInterfaces(), //传递一个一个Class<?>[] interfacesnew InvocationHandler() {//使用匿名内部类实现接口InvocationHandler
                                    @Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {System.out.println("调用目标方法前的逻辑");Object invoke = method.invoke(tar, args);System.out.println("调用目标方法前的逻辑");return invoke;}});newProxyInstance.test1();//实际调用了InvocationHandler下的invoke
        }
}

//执行结果调用目标方法前的逻辑
目标对象的test1()
调用目标方法前的逻辑

      注意:jdk的Proxy方式实现的动态代理目标对象必须有接口,没有接口不能实现jdk

     版本的动态代理.

转载于:https://www.cnblogs.com/steve-guo/p/9425115.html

Java中代理的简明使用相关推荐

  1. 所有和Java中代理有关的知识点都在这了

    转载自  所有和Java中代理有关的知识点都在这了 对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区 ...

  2. 所有和Java中代理有关的知识点都在这了。

    对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区别呢.本文就来简要分析一下. 代理技术,其实不只是J ...

  3. 黑马程序员——Java的代理模式

    ------- android培训.java培训.期待与您交流! ---------- Java中代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接 ...

  4. java 动态代理与静态代理

    代理在生活中比较常见,比如常见的代理商,对工厂进行代理,工厂专注生产,代理商负责经销,用户购买商品从代理商手中购买.java中代理分为动态代理与静态代理,其中动态代理比较常见的有jdk动态代理和cgl ...

  5. 吃透Java中的动态代理

    动态代理在Java中是很重要的一部分,在很多框架中都会用到,如Spring中的AOP.Hadoop中的RPC等.为此在这把我对Java中的动态代理的理解分享给大家,同时写了一个模拟AOP编程的实例.( ...

  6. 详解 Java 中的三种代理模式

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

  7. Java中通过代理对类进行修改

    JAVA中的静态代理.动态代理及JDK proxy和CGLIB.Javassist.ASM实践 简介 Java中对已经有的类进行修改,改变或调整其执行,这可以通过代理来实现.Java的class文件是 ...

  8. java设计模式代理模式_Java中的代理设计模式

    java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...

  9. Java中如何实现代理机制(JDK、CGLIB)

    代理分为两种: 1.静态代理 2.动态代理  动态代理又分为两种:jdk 实现  :Cglib 实现 3.Java中如何实现代理机制(JDK.CGLIB) JDK动态代理:代理类和目标类实现了共同的接 ...

最新文章

  1. finereport连接oracle_FINEREPORT连接远程ORACLE数据库
  2. 让Elasticsearch飞起来!——性能优化实践干货
  3. php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...
  4. Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
  5. c/c++教程 - 2.3 函数的提高 函数的形参列表默认值 占位参数 函数重载
  6. Make sure you've included captcha.urls as explained in the INSTALLATION section on
  7. 件测试专家分享III GUI自动化测试相关
  8. LAMP_PHP配置
  9. [USACO11DEC] 牧草种植Grass Planting
  10. C#即时通讯(局域网QQ)
  11. STM8S003F3 UFQFPN20 ADC采样电压
  12. SPSS卡方检验结果解读详解
  13. 能够识别图片文字的软件有吗
  14. python num函数,python函数
  15. vue怎么在地址栏隐藏路由
  16. html5头像裁剪,H5头像裁剪的实现与坑位
  17. oracle异地双活距离,再谈异地双活容灾部署(6.24)
  18. 如何思考总结,并如何写文档展示. 结构化思考, 金字塔思维
  19. [mit6.1810] Lab system calls
  20. artisan命令大全

热门文章

  1. 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
  2. Silverlight+WCF 新手实例 象棋 棋子定位与象棋类(四)
  3. TrueCrypt 为何决定终止项目
  4. SLB+Tomcat时request.RemoteAddr无法获取正确的客户端IP的问题解决方案
  5. Hadoop2.6.0中YARN底层状态机实现分析
  6. Python单例模式的4种实现方法(转)
  7. java对象序列化和反序列化,redis存入和获取对象
  8. RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
  9. 对tmemorystream的一些改进_delphi教程 [转]
  10. Linux环境下源码编译方式安装MySQL5.1(1)