栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架-----代理者模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架-----代理者模式

文章目录
  • 1 、代理者模式
    • 1.1、什么是代理模式
    • 1.2、为什么要使用代理模式
    • 1.3、代理模式的实现
      • 1.3.1、静态代理
      • 1.3.2、动态代理
        • 1.3.2.1、使用 JDK 的 Proxy 类实现动态代理
        • 1.3.2.2、使用 CGLIB 实现动态代理

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

1 、代理者模式 1.1、什么是代理模式

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

1.2、为什么要使用代理模式

隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类
对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口
开闭原则:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额
外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,符合
代码设计的开闭原则。


✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

1.3、代理模式的实现

代理模式可以分为两种:静态代理、动态代理

1.3.1、静态代理

静态代理模式由三个部分构成:
 一个公共的接口
 一个被代理角色
 一个代理角色


1.3.2、动态代理

在动态代理中分为两种实现方式:
 使用 JDK 的 Proxy 类实现动态代理
 使用 CGLIB 实现动态代理

1.3.2.1、使用 JDK 的 Proxy 类实现动态代理






1.3.2.2、使用 CGLIB 实现动态代理

CGLIB(Code Generation Library)是一个高性能开源的代码生成包,它被许多框架所使
用,其底层是通过使用一个小而快的字节码处理框架 ASM(Java 字节码操控框架)转换字
节码并生成新的类。因此 CGLIB 要依赖于 ASM 的包。
JDK 的动态代理机制只能代理实现了接口的类,而对于没有实现接口的类就不能使用
JDK 的 Proxy 类生成代理对象,cglib 是针对类来实现代理的,他的原理是对指定的目标类生
成一个子类并通过回调的方式来实现增强,但因为采用的是继承,所以不能对 final 修饰的
类进行代理







✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号