主要是JDK代理在实际中运用
首先JDK代理的一个原理是什么,哪些实际用到了JDK的代理
使用JDK代理的真正好处是什么,以及代码是如何实现的 ?
不吝赐教!

解决方案 »

  1.   

        我个人认为:
         
        JDK代理的底层用的就是代理模式,这个模式你应该知道吧(两个类之间本来没什么联系但是它们之间因为某种
    原因又想相互调用,这个时候你就应该再new个类,让它们通过这个新类去间接的调用)
         就比如说咱们JAVA编译器吧,它不是直接和操作系统通信,而是通过JVM来间接的和操作系统打交道
      

  2.   

        JVM所扮演的角色就是代理
      

  3.   

    楼主可以参考一下这个帖子
    “主题:JDK的动态代理是如何实现的?”
    里面有实例和原理讲解,讲的不错的
      

  4.   

       不是有一本书专门讲JDK原理的吗?是什么名字啊?知道的告下,谢谢
      

  5.   


    package com.bjsxt.spring;import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;public class SecurityHandler implements InvocationHandler { private Object targetObject;

    public Object newProxy(Object targetObject) {
    this.targetObject = targetObject;
    return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(), 
      targetObject.getClass().getInterfaces(), 
      this);

    }

    public Object invoke(Object proxy, Method method, Object[] args)
    throws Throwable {
    checkSecurity();
    Object ret = null;
    try {
    ret = method.invoke(this.targetObject, args);
    }catch(Exception e) {
    e.printStackTrace();
    throw new java.lang.RuntimeException(e);
    }
    return ret;
    } private void checkSecurity() {
    System.out.println("----------checkSecurity()---------------");
    }

    }
      

  6.   

    有人愿意举一例 
    用JDK动态代理和不用JDK动态代理去实现某一个功能
    来看一下JDK动态代理有什么好处
    总感觉这东西 看了好几遍 没看出什么味道 没看出有什么好处出来
    而且对原理也半天不理解
      

  7.   

    JDK 的动态代理有个缺点,就是被代理类中的方法必须出现在接口中,否则无法实现代理。
    除了 JDK 中有动态代理之外,Cglib 也有动态代理,Cglib 采用的是 ASM 字节码工具直
    接修改字节码而产生的代理类,Cglib 的动态代理的类不需要实现什么接口。当然了,JDK 和 Cglib 的动态代理在代理速度上是相辅相成的,Cglib 在创建代理对象上
    的时间要比 JDK 的时间长,但是代理对象的性能要比 JDK 高。如果是采用单例模式,不需要频繁创建代理对象的话,建议采用 Cglib,否则采用 JDK。另外,动态代理是面向切面编程的基础。动态代理可以做的事情很多,比如声明式事务管理、连接池中连接管理、切面级的方法
    增强等等。