Spring第六章:代理

1.代理模式
  1.1 设计模式:前人总结的一套解决特定问题的代码.
  1.2 代理设计模式优点:
    1.2.1 保护真实对象
    1.2.2 让真实对象职责更明确.
    1.2.3 利于扩展
  1.3. 代理设计模式三要素
    1.3.1 真实对象
    1.3.2 代理对象
    1.3.3 抽象对象(抽象功能)

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


3 动态代理-jdk
  3.1和 cglib 动态代理对比
    3.1.1 优点:jdk 自带,不需要额外导入 jar
    3.1.2 缺点:
      3.1.2.1 真实对象必须实现接口
      3.1.2.2 利用反射机制.效率不高.

4 动态代理-cglib
  4.1cglib 优点:
    4.1.1 基于字节码,生成真实对象的子类.

    4.1.1 运行效率高于 JDK 动态代理.

    4.1.2 不需要实现接口

  4.2. cglib 缺点:
    4.2.1 非 JDK 功能,需要额外导入 jar
  4.3使用 spring aop 时,只要出现 Proxy 和真实对象转换异常
    4.3.1 设置为 true 使用 cglib
    4.3.2 设置为 false 使用 jdk(默认值)

猜你喜欢

转载自www.cnblogs.com/reload-sun/p/10468405.html