结论先落地
ABAP 里没有一个和 Java Spring 的 @Pointcut 完全对等的语言级注解,也没有 Spring AOP 那种基于表达式批量匹配方法执行点,再把 advice 自动织入目标对象的通用机制。更准确的说法是,ABAP 有很多扩展点,有 BAdI,有 Enhancement Framework,有 RAP validation 和 determination,有 CDS annotation,有 framework exit,有 wrapper 和 decorator 设计,但它们都不是 Spring @Pointcut 的一比一替代品。
Spring 官方文档对 pointcut 的描述很明确,pointcut 用来决定感兴趣的 join point,从而控制 advice 何时运行。Spring AOP 只支持 Spring Bean 的方法执行 join point,所以 pointcut 可以理解为匹配 Spring Bean 方法执行的规则。官方还说明,@AspectJ 风格里,pointcut signature 由一个普通方法提供,pointcut expression 则放在 @Pointcut 注解里。(Home)
ABAP 的思路不同。ABAP 传统上运行在 AS ABAP 里,许多标准业务对象由 SAP 提供,客户扩展不是靠