JDK的动态代理

2017-03-24  本文已影响0人  奇乞祈兴

public static Object createProxy(Object target) {//这个target是被代理对象
        return Proxy.newProxyInstance(ProxyTest.class.getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {

            //这里的proxy是newProxyInstance返回生成的代理对象,method表示代理对象目前正在调用的方法
            //agrs表示代理类调用的方法包含的参数
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                if ("sayHello".equals(method.getName())) {
                    doBefore();
                    try {
                        method.invoke(target, args);
                    } catch (Exception e) {
                        doThrowing();
                    }
                    doAfter();
                }
                return null;
            }
        });
    }
JDK动态代理就是通过Proxy.newProxyInstance来创建代理对象的:
上一篇下一篇

猜你喜欢

热点阅读