Java中面向方面的编程

时间:2008-11-28 12:20:30

标签: java aop

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

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

5 个答案:

答案 0 :(得分:6)

JBossAOP和AspectJ是AOP的两个常用,成熟的框架。另一个受欢迎的选择是Spring AOP,但它缺少其他两个的一些功能。

JBossAOP和AspectJ都有类似的功能,一个很大的区别是AspectJ依赖于Java语言的扩展,而JBoss AOP却没有。

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)