我想问下JDK的动态代理往往在哪些情况下会用到,使用动态代理的主要目的是干什么,仅仅是在调用目标类之前做一个拦截吗,请高手们指点下。

解决方案 »

  1.   

    Spring的AOP、Struts2的拦截器。学了就知道了。
      

  2.   

    动态代理说穿了就是创建根据用户需求创建一个该对象的代理对象给用户一共用户使用。在各类框架中就使用了大量的动态代理。如果没有反射跟动态代理那么基本上就不可能形成框架了。
    主要用于:
    1.用于日志,你可以根据自己的需要在方法的调用前后以及异常等情况下写入各种不同的日志
    2.事务控制,你可以统一使用这种方式在方法完成之后提交事务或者回滚事务操作
    拦截器,日志记录,事务控制等等所有AOP方面的东西其实都是因为动态代理才存在的。如果没有动态代理那些也就不存在了
      

  3.   

    你google下spring aop 权限控制,就有很深的理解了。