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

        }

     

  • 相关阅读:
    js 操作文件
    Thymeleaf在js中使用表达式
    JUnit5常用注解
    .Net开发步骤
    springboot自定义 HandlerMapping
    期末加分+总结
    SAP ABAP 性能优化技巧 – 修改一组纪录
    SAP ABAP 性能优化技巧 – 视图取代基本表
    Sql Server 日期格式化函数 (转)
    SAP ABAP 性能优化技巧 — 使用二分查找(Binary Search)选项
  • 原文地址:https://www.cnblogs.com/masterhxh/p/12918814.html
Copyright © 2011-2022 走看看