• jdk动态代理例子


    jdk动态代理例子

    1. 声明接口

    package cn.zhengyong.proxy;
    
    /**
     * 接口
     * @author zhengyong
     *
     */
    public interface OriginInterface {
    
        public void testProxy();
    
    }

    2. 实现接口

    package cn.zhengyong.proxy;
    
    /**
     * 实现类
     * @author zhengyong
     *
     */
    public class OriginImpl implements OriginInterface{
    
        @Override
        public void testProxy() {
            System.out.println("test finish.");
        }
    }

    3. 创建代理类,需要持有接口对象

    package cn.zhengyong.proxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    
    /**
     * 
     * 代理类实现InvocationHandler
     * 
     * @author zhengyong
     *
     */
    public class OriginProxy implements InvocationHandler{
    
        private Object target;
    
        public  OriginProxy(OriginInterface target){
            super();
            this.target = target;
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    
            System.out.println("begin invoke method.");
    
            Object result = method.invoke(target, args);
    
            System.out.println("end invoke method.");
    
            return result;
        }
    }

    4. 创建测试类

    package cn.zhengyong.proxy;
    
    import java.lang.reflect.Proxy;
    
    /**
     * @author zhengyong
     *
     */
    public class ProxyTest {
    
        public static void main(String[] args) {
            // 实例化目标对象
            OriginInterface target = new OriginImpl();
            // 根据目标对象创建代理对象
            OriginInterface proxy = (OriginInterface) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new OriginProxy(target));
            // 调用代理对象方法
            proxy.testProxy();
        }
    
    }

    5. 运行结果

    begin invoke method.
    test finish.
    end invoke method.
  • 相关阅读:
    数据结构实验之栈四:括号匹配
    数据结构实验之栈三:后缀式求值
    8月7日学习
    8月6日学习
    8月5日学习
    8月4日学习
    周总结
    8月3日学习
    8月2日学习
    8月1日学习
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/8604400.html
Copyright © 2020-2023  润新知