zoukankan      html  css  js  c++  java
  • JDK动态代理简单使用(2)

    JDK动态代理使用:

    使用JDK动态代理步骤:

    ①创建被代理的接口和类;

    public interface IA {
        void f1(String param);
    }
    public class A implements IA {
        @Override
        public void f1(String param) {
            System.out.println("方法f1执行了........" + param);
        }
    }


    ②创建InvocationHandler接口的实现类,在invoke方法中实现代理逻辑;

    public class MyInvocationHandler implements InvocationHandler {
    
        //被代理对象,Object类型
        private Object target;
    
        public MyInvocationHandler(Object target){
            this.target = target;
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("proxy start.....");
            Object invoke = method.invoke(target, args);
            System.out.println("proxy end......");
            return invoke;
        }
    }


    ③通过Proxy的静态方法newProxyInstance( ClassLoaderloader, Class[] interfaces, InvocationHandler h)创建一个代理对象
    ④使用代理对象。

    public class DynamicProxyTest {
    
        public static void main(String[] args) {
            IA target = new A();
            InvocationHandler handler = new MyInvocationHandler(target);
            IA proxyInstance = (IA) Proxy.newProxyInstance(DynamicProxyTest.class.getClassLoader(), target.getClass().getInterfaces(), handler);
            proxyInstance.f1("XXX");
        }
    }
  • 相关阅读:
    [转]男人25岁之前应该懂得的21个道理
    family album U.S.A 05
    Humour
    Pretty Boy
    [转]男人本色.女人风韵
    电话英语
    搞不懂的女人
    family album U.S.A 03
    [转]The flame of love(爱的火焰)
    四季花开!
  • 原文地址:https://www.cnblogs.com/wly1-6/p/10256010.html
Copyright © 2011-2022 走看看