咱就直接实例开头了哈:

我们需要一个工具类: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相关推荐

  1. java动态代理【一】

    java动态代理的定义:为其他目标类的方法增加切面的逻辑,即在执行目标类方法的时候,先去执行一段如校验检测的逻辑代码.java通俗一点就是生成一个继承目标类的子类,并在每个调用方法都添加一段逻辑. 应 ...

  2. Java动态代理的实现

    动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程. 友情提示:本文略有难度,读者需具备代理模式相关基础知识,. ...

  3. Java动态代理与Cglib代理

    为什么80%的码农都做不了架构师?>>>    最近又继续回来死磕Spring源码,以前看的也忘得差不多了,这次先把Spring使用的动态代理cglib看了一下,打好基础知识. cg ...

  4. JAVA 动态代理学习记录

    打算用JAVA实现一个简单的RPC框架,看完RPC参考代码之后,感觉RPC的实现主要用到了两个方面的JAVA知识:网络通信和动态代理.因此,先补补动态代理的知识.---多看看代码中写的注释 参考:Ja ...

  5. 初看Mybatis 源码 (二) Java动态代理类

    先抛出一个问题,用过Mybatis的都知道,我们只需要定义一个Dao的接口,在里面写上一些CRUD相关操作,然后配置一下sql映射文件,就可以达到调用接口中的方法,然后执行sql语句的效果,为什么呢? ...

  6. Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP

    Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP xBird 原创  (参与分:36,专家分:90)   发表:2004-9-3 上午9:37   版本:1.0   阅读:160 ...

  7. Java动态代理的应用

    先看一下代理模式,这个应该是设计模式中最简单的一个了,类图 代理模式最大的特点就是代理类和实际业务类实现同一个接口(或继承同一父类),代理对象持有一个实际对象的引用,外部调用时操作的是代理对象,而在代 ...

  8. java动态代理上是否能再进行一层代理

    CGLIB动态代理类 import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.p ...

  9. Java 动态代理机制分析及扩展--转

    http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/#icomments http://www.ibm.com/developerworks/c ...

最新文章

  1. 关于return和exit
  2. 评估创业项目的十大标准
  3. python切片操作的几种格式_【Python杂记】第四篇:序列切片
  4. linux文件目录解释
  5. VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解
  6. python3.6sysos_python3.6实现学生信息管理系统
  7. Java学习:抽象类与接口
  8. Django JWT认证实现
  9. 郑州市暂住证(居住证)、迁户口办理-2018年
  10. JAVA 写入数据不覆盖_Java不覆盖原文件写入
  11. MATLAB图像处理实验——细胞图像的分割和计数
  12. JavaSSM接入支付宝当面付(扫码支付)
  13. 通过Fildder下载百度音乐里的收费歌曲
  14. java源码分析-注解AnnotatedElement接口
  15. Mininet教程(六):多数据中心带宽实验
  16. 搜狗校招笔试题编程之一
  17. Spring注解解析及工作原理、自定义注解
  18. 视频增强,去雾的实现 BU6521KV
  19. Java基础---继承、抽象、接口
  20. Protobuf3 使用..

热门文章

  1. 解决 ImportError: cannot import name ‘_C‘ from ‘detectron2‘
  2. Audition CS6 安装到2%出现安装失败
  3. 求N个数中的第二大的数字
  4. 关于爬取arXiv论坛论文并按照论文主题进行分类的办法
  5. DC/DC电路——自举电容(boost)的作用
  6. 【C语言】浮点型数据在内存中的存储
  7. HTML常用标签 选择器
  8. php正则表达式判断三个数字相等相同|判断豹子
  9. java笔记——反射
  10. 前端埋点需求(vue.js)