【问题标题】:Aspect-oriented programming in JavaJava中的面向方面编程
【发布时间】:2008-11-28 12:20:30
【问题描述】:

Java 面向方面编程的最佳工具是什么?

对工具的要求当然是 IDE 支持、表达能力和适当的文档。

【问题讨论】:

    标签: java aop


    【解决方案1】:

    JBossAOP 和 AspectJ 是两个常用的、成熟的 AOP 框架。另一个流行的选择是 Spring AOP,但它缺少其他两个的一些特性。

    JBossAOP 和 AspectJ 都有相似的特性,一个很大的区别是 AspectJ 依赖于 Java 语言的扩展,而 JBoss AOP 则没有。

    如果您的 AOP 要求相当简单,那么还值得考虑使用字节码操作库,例如 ASM。我使用 ASM 来实现简单的“around-advice”(即,在方法调用之前和之后注入的代码),它被证明是 JBossAOP 的更轻量级的替代方案。 ASM 设计简洁且文档齐全。

    【讨论】:

      【解决方案2】:

      我会说 AspectJ。 IDE 部分,据我所知,缺乏,但文档和表达能力是我见过的最好的 AOP 框架之一。

      【讨论】:

        【解决方案3】:

        如果您已经在使用 Spring,则托管对象已经有 AOP support。虽然不如 AspectJ 灵活,但它不需要 AspectJ 所做的预编译步骤。

        【讨论】:

          【解决方案4】:

          关于 Spring AOP 支持。默认情况下,它仅与 Spring 可管理对象和基于 AspectJ 的 AFAIK 相关。

          我还没有自己检查它,但看起来它允许使用 AOP 和其他对象(例如 Tomcat 下的加载时间编织)。详情here

          【讨论】:

            【解决方案5】:
            猜你喜欢
            • 2014-06-13
            • 2010-11-24
            • 2011-06-17
            • 2010-09-18
            • 2012-09-03
            • 2010-09-08
            • 2015-04-28
            • 2010-11-27
            • 1970-01-01
            相关资源
            最近更新 更多