码迷,mamicode.com
首页 > 其他好文 > 详细

动态代理(JDK实现)

时间:2017-07-10 22:18:17      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:代码   ret   静态   生成   span   method   方法   ade   实现   

 

JDK动态代理,针对目标对象接口进行代理 ,动态生成接口的实现类 !(必须有接口)

 

public class ProxyDemo {

    //通过方法的返回值得到代理对象            方法参数是要增强的对象
    public Object getProxyObject(final Object target) {
        
        Object proxyObj = Proxy.newProxyInstance(   //调用Proxy类中的静态方法,创建代理对象
                target.getClass().getClassLoader(),  //参数1:目标对象的类加载器
                target.getClass().getInterfaces(),   //参数2:目标对象实现的接口
                new InvocationHandler() {            //匿名内部类的方式,回调方法,增强对象
                    
                    @Override  //在该方法中写逻辑代码,增强方法
                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        System.out.println("前置增强");
                        Object result = method.invoke(target, args);
                        System.out.println("后置增强");
                        return result;
                    }
                });
        return proxyObj;
    }
}

动态代理(JDK实现)

标签:代码   ret   静态   生成   span   method   方法   ade   实现   

原文地址:http://www.cnblogs.com/shizhongyang/p/7147476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!