34、AOP 策略执行:实现灵活的访问控制与策略检查

AOP 策略执行:实现灵活的访问控制与策略检查

1. AOP 策略执行概述

AOP(面向切面编程)开发的许多切面可以直接使用,无需修改,这种可重用性使得基于 AOP 的策略执行具有很高的成本效益。实现策略有两种选择:编译时检查和运行时检查,每种执行方式都有其适用场景和局限性。

2. 编译时执行

编译时检查意味着在编译阶段进行策略违规检查。在 Java 和 C++ 等强类型语言中,编译器已经执行了某些编译时检查,如类型匹配、访问控制等。使用 AspectJ 可以将这种检查提升到一个新的水平,能够指定自定义检查。

编译时执行使用 declare error declare warning 构造来检测匹配的连接点并发出错误或警告。然而,编译时检查存在一些限制:
- 可使用的切入点受限 :只能使用静态可确定的切入点,像 this() if() cflow() 不能用于此目的。
- 无法检测连接点的缺失 :切入点用于选择连接点,不能指示连接点的缺失,例如无法检测空的 catch 块。
- 不能基于多个连接点进行分析 :无法实现像检查方法是否正确释放之前获取的并发锁这样的策略,因为这种检查需要包含两个连接点的表达式。
- 无法检测风格违规 :例如,切入点不能选择超过一定大小的方法、缺乏文档的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值