Java中面向方面的编程

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

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

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

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

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

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

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

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

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

spring休闲的AOP这个链接http://rajkrrsingh.blogspot.com/2012/10/spring-aop-tutorial.html