zoukankan      html  css  js  c++  java
  • 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();

        }

     

  • 相关阅读:
    C#中判断为空
    ArcGIS中的AddIn开发示例
    当前不会命中断点,还没有加载该文档加载任何符号
    设置ArcGIS的外观改回到出厂
    读取Style符号库样式的方法
    ArcEngine中的缩放地图
    修改字段结构之GP工具
    修改字段结构之ArcGIS Diagrammer
    merage语句
    Windows下Redis的安装使用
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12918814.html
Copyright © 2011-2022 走看看