代理设计模式

  1. 设计模式:前人总结的一套解决特定问题的代码
  2. 代理设计模式优点
    2.1 保护真实对象
    2.2 让真实对象职责更明确
    2.3 扩展
  3. 代理设计模式
    3.1 真实对象(老总)
    3.2 代理对象(秘书)
    3.3 抽象对象(抽象功能),谈小目标s

    静态代理设计模式

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

    动态代理

  9. 为了解决静态代理频繁编写代理功能缺点
  10. 分类
    2.1 JDK 提供的
    2.2 cglib 动态代理

    JDK 动态代理

  11. 和 cglib 动态代理对比
    1.1 优点:jdk 自带,不需要额外导入jar
    1.2 缺点:
    • 真实对象必须实现接口
    • 利用反射机制,效率不高
  12. 使用 JDK 动态代理时可能出现java.lang.ClassCastException异常
  13. 1 出现原因:希望把接口对象转换为具体真实对象

    cglib动态代理

  14. cglib 优点
    1.1 基于字节码,生成真实对象的子类,运行效率高于 JDK 动态代理
    1.2 不需要实现接口
  15. cglib 缺点:非JDK功能,需要额外导入 jar
  16. 使用 spring aop 时,只要出现 Proxy 和真实对象转换异常
    3.1 设置为 true 使用 cglib
    3.2 设置为 false 使用 jdk(默认值)<aop:aspectj-autoproxyproxy-target-class="true"></aop:aspectj-autoproxy>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值