面向切面编程(AOP)的探索与替代方案
1. AOP 相关技术介绍
AOP 概念有对应的支持关键字,就像 C++ 扩展 C 以支持面向对象编程(OOP)概念一样,AspectJ 作为 AOP 的一种实现,提供了特殊的编译器。
曾经,AspectJ 有个“近亲” AspectWerkz。它遵循 AspectJ 的核心模型,但使用 JavaDoc 注释、Java 5 注释或 XML 元素来表达元数据,而非额外的关键字。在 AspectJ 5 版本中,AspectWerkz 与 AspectJ 合并,为开发者提供了包括新的 @AspectJ(基于纯 Java 5 注释)语法等多种技术选择。
AspectJ 的主要工具支持是 Eclipse 插件 AspectJ 开发工具(AJDT)。AJDT 最重要的特性之一是用于可视化横切的工具,这对调试切入点规范很有帮助。即使在代码部署之前,你也能可视化类和切面组合后的效果。
AspectJ 语言还有一个替代实现,即 AspectBench 编译器(abc;http://aspectbench.org)。该项目的重点是提供一个灵活的实现,以支持对新的 AspectJ 语言特性和优化思路进行实验。
2. Spring AOP
Spring 是企业应用中最流行的轻量级框架。为满足企业应用需求,它包含了一个基于拦截器和代理设计模式的 AOP 系统。早期的 Spring AOP(2.0 版本之前)编程模型较为复杂,而基于 AspectJ 的新编程模型提供了更好的编程体验,使 Spring 用户能轻松编写自定义切面。
和 AspectJ 一样,Spring AOP 通过 Sp
超级会员免费看
订阅专栏 解锁全文
479

被折叠的 条评论
为什么被折叠?



