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


    代理:

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

    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();

        }

     

  • 相关阅读:
    MongoDB
    Redis主从复制
    在Flash中动画的制作方式:
    帧的类型:
    第一次做的补间动画,总结过程
    Python脚本:过滤取指定链接标题是否含有指定文字,并将其输出
    cmd命令:在ftp下载文件运行
    bat命令:在txt文本每行后加指定文字
    bat命令:在txt文本每行前加指定文字
    SSH爆破心得:
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12918814.html
Copyright © 2020-2023  润新知