美文网首页程序员
Spring-静态/动态代理模式

Spring-静态/动态代理模式

作者: Margolu | 来源:发表于2020-10-19 22:57 被阅读0次

静态代理

静态代理角色分析

抽象角色:一般使用接口或者抽象类来实现

真实角色:被代理的角色

代理角色:代理真实角色,代理真实角色后,一般会做一些附属的操作

客户:使用代理角色来进行一些操作

示例代码

抽象角色:租房

真实角色:房东要出租房子

代理角色:中介带客户看房子,租房子,收中介费。

客户:找中介,中介代理房东

静态代理的优点

使得真实角色更加纯粹

公共的业务由代理来完成,实现了业务的分工

公共业务发生扩展时变得更加集中和方便

缺点:

类多了,多了代理,工作量增加,开发效率低。

静态代理再理解

1.创建一个抽象角色:增删改查业务

创建真是对象,完成增删改查操作

设置代理角色,增加日志的实现

代理模式作用:在不改变原有代码的情况下,实现了对原有功能的增强

AOP的核心思想

动态代理

动态代理和静态代理的角色一样

动态代理的代理类是动态生成的,静态代理的代理类是我们提前写好的

动态代理分为两类:一类是基于接口动态代理,一类是基于类的动态代理

基于接口的动态代理--JDK动态代理

基于类的动态代理--cglib

JDK动态代理需要了解两个类:InvocationHandler和Proxy

InvocationHandler是由代理实例的调用处理程序实现的接口。每个代理实例都有一个关联的调用处理程序。当在实例上调用方法时,方法调用将被编码并分派到其调用处理程序的invoke方法

proxy-调用该方法的代理实例

method-所述方法对应于调用代理实例上的接口方法的实例。方法对象的声明类将是该方法声明的接口。

Proxy 代理

提供了创建动态代理类和实例的静态方法,它也是由这些方法创建的所有动态代理类的超类。

第一个参数classLoader --类加载器来定义代理类

第二个参数interfaces-代理类实现的接口列表

第三个参数h--调度方法调用的调用处理函数

代码实现

核心:一个动态代理一般代理某一类业务,一个动态代理可以代理多个类,代理的是接口。

如下:同样可以代理用户业务增删改查

相关文章

  • Spring-静态/动态代理模式

    静态代理 静态代理角色分析 抽象角色:一般使用接口或者抽象类来实现 真实角色:被代理的角色 代理角色:代理真实角色...

  • Spring之代理模式

    九、代理模式 目录:静态代理、动态代理AOP的底层机制就是动态代理。代理模式分为静态代理和动态代理。接触aop之前...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • java代理模式

    代理模式分为动态代理和静态代理

  • 设计模式

    单例模式 模板方法模式 工厂模式 代理模式 静态代理 JDK动态代理

  • 设计模式

    单例模式 代理模式 静态代理 jdk动态代理 cglib动态代理 工厂模式 适配器模式 建造者模式 观察者模式

  • Maven项目&Spring AOP基础(一)

    Spring AOP的底层机制就是动态代理。而代理模式又分为:静态代理、动态代理。 静态代理的角色分为:抽象角色 ...

  • JAVA代理模式深入了解(一)

    目前学习阶段,有问题请帮忙指出,谢谢 代理模式有三种: 静态代理模式 jdk动态代理模式 cglib动态代理模式 ...

  • 设计模式~代理模式

    学习代理模式内容: ★ 静态代理、 ★ 动态代理(JDK动态代理、CGLIB动态代理)、 ★ 拦截器的原理和日志记...

  • 代理模式vs装饰模式 and 静态代理vs动态代理

    目录:1.代理模式定义&实现2.装饰模式定义&实现3.静态代理4.动态代理:JDK动态代理、Cglib动态代理5....

网友评论

    本文标题:Spring-静态/动态代理模式

    本文链接:https://www.haomeiwen.com/subject/abbqmktx.html