Java中代理的简明使用
代理
首先应该明确两个概念
代理对象:对访问目标对象进行拦截的对象
目标对象:实际要访问的对象
代理的作用
可以用对方法的加强;
动态代理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中代理的简明使用相关推荐
- 所有和Java中代理有关的知识点都在这了
转载自 所有和Java中代理有关的知识点都在这了 对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区 ...
- 所有和Java中代理有关的知识点都在这了。
对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区别呢.本文就来简要分析一下. 代理技术,其实不只是J ...
- 黑马程序员——Java的代理模式
------- android培训.java培训.期待与您交流! ---------- Java中代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接 ...
- java 动态代理与静态代理
代理在生活中比较常见,比如常见的代理商,对工厂进行代理,工厂专注生产,代理商负责经销,用户购买商品从代理商手中购买.java中代理分为动态代理与静态代理,其中动态代理比较常见的有jdk动态代理和cgl ...
- 吃透Java中的动态代理
动态代理在Java中是很重要的一部分,在很多框架中都会用到,如Spring中的AOP.Hadoop中的RPC等.为此在这把我对Java中的动态代理的理解分享给大家,同时写了一个模拟AOP编程的实例.( ...
- 详解 Java 中的三种代理模式
代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用 ...
- Java中通过代理对类进行修改
JAVA中的静态代理.动态代理及JDK proxy和CGLIB.Javassist.ASM实践 简介 Java中对已经有的类进行修改,改变或调整其执行,这可以通过代理来实现.Java的class文件是 ...
- java设计模式代理模式_Java中的代理设计模式
java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...
- Java中如何实现代理机制(JDK、CGLIB)
代理分为两种: 1.静态代理 2.动态代理 动态代理又分为两种:jdk 实现 :Cglib 实现 3.Java中如何实现代理机制(JDK.CGLIB) JDK动态代理:代理类和目标类实现了共同的接 ...
最新文章
- finereport连接oracle_FINEREPORT连接远程ORACLE数据库
- 让Elasticsearch飞起来!——性能优化实践干货
- php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...
- Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
- c/c++教程 - 2.3 函数的提高 函数的形参列表默认值 占位参数 函数重载
- Make sure you've included captcha.urls as explained in the INSTALLATION section on
- 件测试专家分享III GUI自动化测试相关
- LAMP_PHP配置
- [USACO11DEC] 牧草种植Grass Planting
- C#即时通讯(局域网QQ)
- STM8S003F3 UFQFPN20 ADC采样电压
- SPSS卡方检验结果解读详解
- 能够识别图片文字的软件有吗
- python num函数,python函数
- vue怎么在地址栏隐藏路由
- html5头像裁剪,H5头像裁剪的实现与坑位
- oracle异地双活距离,再谈异地双活容灾部署(6.24)
- 如何思考总结,并如何写文档展示. 结构化思考, 金字塔思维
- [mit6.1810] Lab system calls
- artisan命令大全
热门文章
- 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
- Silverlight+WCF 新手实例 象棋 棋子定位与象棋类(四)
- TrueCrypt 为何决定终止项目
- SLB+Tomcat时request.RemoteAddr无法获取正确的客户端IP的问题解决方案
- Hadoop2.6.0中YARN底层状态机实现分析
- Python单例模式的4种实现方法(转)
- java对象序列化和反序列化,redis存入和获取对象
- RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
- 对tmemorystream的一些改进_delphi教程 [转]
- Linux环境下源码编译方式安装MySQL5.1(1)