Spring --- AOP(2) --- 动态代理
-
设计模式
-
动态代理
-
-
为其他对象提供一种代理以控制对象的访问权限
-
使用代理模式创建代理对象,控制目标对象的访问,在不改变目标对象的情况下调价额外的功能
-
UML类图
-
优点
-
代理模式能将代理对象与目标对象分离,一定程度上降低了耦合度
-
代理模式在客户端和目标对象之间起到了中介作用
-
代理对象也可以对目标对象添加额外功能
-
-
缺点
-
一定程度上增加了系统的复杂度,降低了性能
-
-
使用场景
-
远程代理
-
为一个位于不同地址空间的对象提供一个本地代理
-
-
虚拟代理
-
如果需要创建一个消耗比较大的对象,先创建一个小号比较小的代理对象,真正的对象只有在需要的时候才被创建
-
-
安全代理
-
控制对目标对象的访问权限
-
-
防火墙代理
-
保护目标对象不让恶意用户攻击
-
-
-
增强类型
-
前置增强
-
执行前
-
-
后置增强
-
执行后
-
-
环绕增强
-
执行前后
-
-
异常抛出增强
-
异常抛出前后
-
-
引介增强
-
目标类之中添加新的方法与属性
-
-