Spring——代理模式(待完)
代理模式是SpringAOP的底层
代理模式的分类:
-
静态代理
-
动态代理
角色:
-
抽象业务:一般会使用接口或者抽象类来解决(房东出租房子这件事)
-
真实角色:被代理的角色(房东)
-
代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作(中介)
-
客户:访问代理对象的人(租客)
代理模式的好处:
-
可以使真实角色的操作更加纯粹,不同去关注一些公共的业务
-
公共业务就交给代理角色,实现了业务的分工
-
公共业务发生扩展的时候,方便集中管理
缺点:
-
一个真实角色就会产生一个代理角色,代码量会翻倍
10.2动态代理
-
动态代理和静态代理角色一样
-
动态代理的代理类是动态生成的,不是我们直接写的
-
动态代理分为两大类:基于接口的动态代理、基于类的动态代理
-
基于接口——JDK动态代理
-
基于类:cglib
-
java字节码:javasist
-
需要了解两个类:Proxy:代理, InvocationHandler:调用处理程序
动态代理的好处:
-
可以使真实角色的操作更加纯粹,不同去关注一些公共的业务
-
公共业务就交给代理角色,实现了业务的分工
-
公共业务发生扩展的时候,方便集中管理
-
一个动态代理类代理的是一个接口,一般就是对应的一类业务
-
一个动态代理类可以代理多个类,只要实现了同一个接口
浙公网安备 33010602011771号