黑马程序员技术交流社区

标题: 利用反射实现动态代理的概述和实现 [打印本页]

作者: 沉湎码海    时间: 2017-2-15 22:44
标题: 利用反射实现动态代理的概述和实现
反射动态代理的概述和实现


1.动态代理概述:

        代理:本来应该自己做的事情,请了别人来做,被请的人就是代理对象。
       
        动态代理: 在程序的运行过程中产生的这个对象,而程序运行过程中产生的对象其实就是我们刚才反射讲解的内容,
                                所以,动态代理其实就是通过反射来生成的一个代理。
                               
               
               
        在Java中java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口就可以生成动态代理对象,
        JDK提供的代理只能针对接口做代理。我们有更强大的代理cglib,Proxy 类中的方法创建动态代理类对象。
       
       
       
       
        public   static  Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces, InvocationHandler h)
       
        最终会调用InvocationHandler的方法
       
        InvocationHandler  Object  invoke(Object proxy,Method method,Object[] args)
       

n.代表权;代理人,代替物;委托书;代理服务器






/*
        InvocationHandler
       
       
        java.lang.reflect
                接口 InvocationHandler
               
        Object invoke(Object proxy, Method method, Object[] args)
          在代理实例上处理方法调用并返回结果。
       

*/

2.动态代理对象



3.如何利用接口做代理????


4.动态代理都是通过反射来做的




5.你要对哪个对象进行代理????



6.流程:

                1.创建动态代理对象
               
                2.调用Proxy里面的newProxyInstance()方法 ,第一个参数传递的是类加载器,第二个是对象.getClass().getInterfaces()方法,第三个参数是,InvocationHandler的子类对象
               
               
               






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2