Spring(6)--代理
背景:为了解决函数,谁需要谁调用的原则,改变代码风格,方便维护

优化后:

一、什么是代理模式?
代理模式的核心作用就是通过代理,控制对对象的访问。它的设计思路是:定义一个抽象角色,让代理角色和真实角色分别去实现它。
真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。它只关注真正的业务逻辑,比如歌星唱歌。
代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并在前后可以附加自己的操作,比如谈合同,布置场地,收钱等等。
这就是代理模式的设计思路。代理模式分为静态代理和动态代理。静态代理是我们自己创建一个代理类,而动态代理是程序自动帮我们生成一个代理,我们就不用管了。下面我详细介绍一下这两种代理模式。
二、静态代理
三、动态代理
动态代理的代理类是动态生成的,不是由程序员直接写好的。它分为两大类:基于接口的动态代理,基于类的动态代理
- 基于接口,JDK动态代理
- 基于类:cglib
- java字节码实现:javasist
需要了解两个类:
(1)Proxy:生成代理的实例
(2)InvocationHandler:调用程序接口处理

浙公网安备 33010602011771号