竹径风声

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.设计模式:前人总结的-套解决特定问题的代码,
2.代理设计模式优点:
  2.1保护真实对象
  2.2让真实对象职责更明确.
  2.3扩展
3.代理设计模式
  3.1真实对象.(老总)

  3.2代理对象(秘书)

  3.3抽象对象(抽象功能)谈小目标

 

一、静态代理设计模式

1.由代理对象代理所有真实对象的功能.
  1.1自己编写代理类
  1.2每个代理的功能需要单独编写
2.静态代理设计模式的缺点:  
  2.1当代理功能比较多时,代理类中方法需要写很多,

二、动态代理
1.为了解决静态代理频繁编写代理功能缺点.
2.分类:
  2.1 JDK提供的
  2.2 cglib动态代理

三. JDK动态代理
1.和cglib动态代理对比
  1.1优点:jdk 自带,不需要额外导入jar
  1.2缺点:
    1.2.1真实对象必须实现接口
    1.2.2利用反射机制.效率不高.
2.使用JDK动态代理时可能出现下面异常
  2.1出现原因:希望把接口对象转换为具体真实对象
 
四、cglib动态代理
1. cglib优点:
      1.1基于字节码,生成真实对象的子类
        1.1.1运行效率高于JDK动态代理
      1.2不需要实现接口
2. cglib 缺点:
      2.1非JDK功能需要额外导入jar
3.使用spring aop时,只要出现Proxy和真实对象转换异常
      3.1设置为true使用cglib
      3.2设置为false使用jdk(默认值

 

posted on 2019-06-03 10:52  竹径风声  阅读(137)  评论(0)    收藏  举报