Java 面向方面编程的最佳工具是什么?
对工具的要求当然是 IDE 支持、表达能力和适当的文档。
最佳答案
JBossAOP 和 AspectJ 是两个常用的、成熟的 AOP 框架。另一个流行的选择是 Spring AOP,但它缺少其他两个的一些特性。
JBossAOP 和 AspectJ 都具有相似的特性,一个很大的区别是 AspectJ 依赖于对 Java 语言的扩展,而 JBoss AOP 则没有。
如果您的 AOP 要求相当简单,那么也值得考虑一个字节码操作库,例如 ASM 。我已经使用 ASM 来实现简单的“around-advice”(即在方法调用之前和之后注入(inject)的代码),并且它被证明是 JBossAOP 的更轻量级的替代方案。 ASM 设计简洁且文档齐全。