• Java-动态代理


    原文地址:https://www.cnblogs.com/gonjan-blog/p/6685611.html 。写的很好

    public interface Person {
    
        public void giveMoney();
    
    }
    
    
    public class Student implements Person {
    
        private String name;
    
        public Student(String name) {
            this.name = name;
        }
    
        @Override
        public void giveMoney() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(name + "上交50元");
        }
    }
    
    
    public class StuInvocationHandler<T> implements InvocationHandler {
        // InvocationHanlder 持有被代理对象
        T target;
    
        public StuInvocationHandler(T target) {
            this.target = target;
        }
    
        /**
         * 可以在此方法中执行被代理类的方法,Spring中的AOP原理
         * @param proxy 代表动态代理对象
         * @param method   代表正在执行的方法
         * @param args  代表调用目标方法时出入的实参
         * @return
         * @throws Throwable
         */
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("代理执行" +method.getName() + "方法");
            // 这里用到反射技术
            Object result = method.invoke(target, args);
    
            return result;
        }
    }
    
    
    public class Main {
    
        public static void main(String[] args) {
            // 被代理的对象
            Person zhangsan = new Student("张三");
            //
            InvocationHandler stuHandler = new StuInvocationHandler<>(zhangsan);
            // 代理对象
            Person stuProxy = (Person)Proxy.newProxyInstance(Person.class.getClassLoader(), new Class[]{Person.class}, stuHandler);
    
            stuProxy.giveMoney();
    
        }
    }
  • 相关阅读:
    tidb的数据校验工具sync-diff-inspector
    tidb的binlog同步工具TiDB Binlog
    tidb的数据同步ticdc
    tidb的数据备份与恢复工具br
    tiup的数据同步工具dm
    反人类设计是如何炼成的?
    tidb的tidb组件的配置文件详解
    tidb的tikv配置详解
    tidb的pd配置详解
    tidb的tiup工具
  • 原文地址:https://www.cnblogs.com/king-peng/p/10050439.html
Copyright © 2020-2023  润新知