A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

反射动态代理的概述和实现


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的子类对象
               
               
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马