首页 > 其他 > 详细

JDK代理(必须代理类要实现一个接口)

时间:2020-05-19 19:41:48      阅读:45      评论:0      收藏:0      [点我收藏+]

代理:

代理公司:比如员工员工出差,中间买机票,订酒店  把中间的无关事情交给代理公司去办

Java

代理

直接调用方法运行

把方法告诉代理对象,让代理对象帮我执行

比如我每次在进行数据更新的时候要记录日志,记录日志的过程交给代理去做

 

JDK代理

public class MyProxy  implements InvocationHandler {

 

    private Object obj;//需要代理的对象

 

    public MyProxy(Object obj) {

        this.obj = obj;

    }

 

    public Object getObj() {

        return obj;

    }

 

    public void setObj(Object obj) {

        this.obj = obj;

    }

 

 

    @Override

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

 

        long start =System.currentTimeMillis();

        //反射调用方法

        Object invoke = method.invoke(obj, args);

 

        long end=System.currentTimeMillis();

        System.out.println("用时"+(end-start));

        return invoke;

    }

}

 

 

  @Test

    public void test1(){

        //需要被代理的对象

        CardDao dao=new CardDaoImpl1();

        //交给代理类

        MyProxy proxy=new MyProxy(dao);

        //让代理公司代为执行

        CardDao d = (CardDao) Proxy.newProxyInstance(dao.getClass().getClassLoader(), dao.getClass().getInterfaces(), proxy);

        d.update();

    }

 

JDK代理(必须代理类要实现一个接口)

原文:https://www.cnblogs.com/masterhxh/p/12918814.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!