JAVA动态代理Porxy
咱就直接实例开头了哈:
我们需要一个工具类:People(接口里面不一定非要是抽象方法哦!!!!大家可以自己扩展一下)
public interface People {
public String Information();
}
再来一个重写Information的实现类Teather
public class Teather implements People {
public String Information() {
// TODO Auto-generated method stub
System.out.println("The Teacher is teaching English");
return "Mr Liuzhi";
}
}
接下来就是主要的代码了,看看我是怎样实现的动态代理:
/*
* @author Mr liu
* 动态代理的基本步骤和操作
* 1、实现InvocationHandler,重写invoke方法
* 2、通过invoke的代理实例上处理方法调用并返回结果。(Runnable和invoke的区别就在于有无返回值)
* 3、找到要找代理的对象,然后实例化为代理对象,进行下一步操作
* 4、通过Proxy.newProxyInstance(类加载器,接口,InvocationHandler对象)实现动态代理
*/
public class Porxy implements InvocationHandler {
/**
* @param args
*/
Object obj;
public Porxy(Object obj){
this.obj=obj;
}
public Porxy(){
}
public static void main(String[] args) {
//需要代理对象
People person=new Teather();
//添加需要代理对象
InvocationHandler people=new Porxy(person);
//实现和加载代理对象
People people2=(People)Proxy.newProxyInstance(person.getClass().getClassLoader(), person.getClass().getInterfaces(),people);
String mess=people2.Information();
System.out.println(mess);
}
public Object invoke(Object arg0, Method arg1, Object[] arg2)
throws Throwable {
System.out.println("Porxy before");
Object result = arg1.invoke(this.obj, arg2);
return result;
}
}
输出结果:
结尾:希望各位大佬多多评论,你们的评论就是我学习的动力!!!!!
JAVA动态代理Porxy相关推荐
- java动态代理【一】
java动态代理的定义:为其他目标类的方法增加切面的逻辑,即在执行目标类方法的时候,先去执行一段如校验检测的逻辑代码.java通俗一点就是生成一个继承目标类的子类,并在每个调用方法都添加一段逻辑. 应 ...
- Java动态代理的实现
动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程. 友情提示:本文略有难度,读者需具备代理模式相关基础知识,. ...
- Java动态代理与Cglib代理
为什么80%的码农都做不了架构师?>>> 最近又继续回来死磕Spring源码,以前看的也忘得差不多了,这次先把Spring使用的动态代理cglib看了一下,打好基础知识. cg ...
- JAVA 动态代理学习记录
打算用JAVA实现一个简单的RPC框架,看完RPC参考代码之后,感觉RPC的实现主要用到了两个方面的JAVA知识:网络通信和动态代理.因此,先补补动态代理的知识.---多看看代码中写的注释 参考:Ja ...
- 初看Mybatis 源码 (二) Java动态代理类
先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢? ...
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP
Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP xBird 原创 (参与分:36,专家分:90) 发表:2004-9-3 上午9:37 版本:1.0 阅读:160 ...
- Java动态代理的应用
先看一下代理模式,这个应该是设计模式中最简单的一个了,类图 代理模式最大的特点就是代理类和实际业务类实现同一个接口(或继承同一父类),代理对象持有一个实际对象的引用,外部调用时操作的是代理对象,而在代 ...
- java动态代理上是否能再进行一层代理
CGLIB动态代理类 import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.p ...
- Java 动态代理机制分析及扩展--转
http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/#icomments http://www.ibm.com/developerworks/c ...
最新文章
- 关于return和exit
- 评估创业项目的十大标准
- python切片操作的几种格式_【Python杂记】第四篇:序列切片
- linux文件目录解释
- VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解
- python3.6sysos_python3.6实现学生信息管理系统
- Java学习:抽象类与接口
- Django JWT认证实现
- 郑州市暂住证(居住证)、迁户口办理-2018年
- JAVA 写入数据不覆盖_Java不覆盖原文件写入
- MATLAB图像处理实验——细胞图像的分割和计数
- JavaSSM接入支付宝当面付(扫码支付)
- 通过Fildder下载百度音乐里的收费歌曲
- java源码分析-注解AnnotatedElement接口
- Mininet教程(六):多数据中心带宽实验
- 搜狗校招笔试题编程之一
- Spring注解解析及工作原理、自定义注解
- 视频增强,去雾的实现 BU6521KV
- Java基础---继承、抽象、接口
- Protobuf3 使用..
热门文章
- 解决 ImportError: cannot import name ‘_C‘ from ‘detectron2‘
- Audition CS6 安装到2%出现安装失败
- 求N个数中的第二大的数字
- 关于爬取arXiv论坛论文并按照论文主题进行分类的办法
- DC/DC电路——自举电容(boost)的作用
- 【C语言】浮点型数据在内存中的存储
- HTML常用标签 选择器
- php正则表达式判断三个数字相等相同|判断豹子
- java笔记——反射
- 前端埋点需求(vue.js)