我有一个基于 spring 构建的现有项目。
我想捕获对 HibernateTemplate.save() 的调用,因此我在 exec(save()) 上定义了一个切入点,并将时间记录在周围建议中。
我可以使用 spring AOP 定义方面,但我可以看到 spring AOP 仅在切入点中的对象是 bean 时才起作用,但在我的情况下,可以直接在现有客户端中的 new() 中创建 HibernateTemplate代码。
所以我必须通过maven插件使用aspectj编译器。我想知道混合spring AOP和aspectj是否有潜在的冲突? ---- 该项目以前的开发人员可能已经在某处使用过 Spring AOP
谢谢 杨
最佳答案
我通常在所有 Spring 应用程序中使用 AspectJ 而不是 Spring-Proxy-AOP。为此,您需要设置一些 spring 配置,主要设置类似 mode="AspectJ"
的内容。一旦我忘记了其中一些配置,这意味着应用程序对某些方面使用了 AspectJ,对其他方面使用了 Spring-Proxy-AOP,是的,应用程序工作正常(除了我真正需要 AspectJ 而不是 pring-Proxy 的情况) AOP)。
所以从我的角度来看:如果你有足够的测试用例,那么就尝试一下。
关于spring - 混合Spring AOP和aspectj编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304521/