混合spring AOP和aspectj编译器?

混合spring AOP和aspectj编译器?,spring,aop,aspectj,Spring,Aop,Aspectj,我有一个基于spring的现有项目 我想捕获对HibernateTemplate.save()的调用,因此我在exec(save()上定义了一个切入点,并将时间记录在一个通知中 我可以使用SpringAOP定义方面,但我可以看到SpringAOP只有在切入点中的对象是bean时才起作用,但在我的例子中,HibernateTemplate可以直接在现有客户机代码中的新()中创建 所以我必须通过maven插件使用aspectj编译器。我想知道混合spring AOP和aspectj是否有潜在的冲突该

我有一个基于spring的现有项目

我想捕获对HibernateTemplate.save()的调用,因此我在exec(save()上定义了一个切入点,并将时间记录在一个通知中

我可以使用SpringAOP定义方面,但我可以看到SpringAOP只有在切入点中的对象是bean时才起作用,但在我的例子中,HibernateTemplate可以直接在现有客户机代码中的新()中创建

所以我必须通过maven插件使用aspectj编译器。我想知道混合spring AOP和aspectj是否有潜在的冲突该项目以前的开发人员可能已经在某处使用过SpringAOP

谢谢
Yang

对于我所有的Spring应用程序,我通常使用AspectJ而不是Spring代理AOP。要做到这一点,您需要设置一些spring配置,主要是设置类似于
mode=“AspectJ”
的内容。一旦我忘记了其中一些配置,这意味着应用程序在某些方面使用AspectJ,在其他方面使用Spring代理AOP,是的,应用程序工作正常(除了我确实需要AspectJ而不是Spring代理AOP的情况)


因此,从我的观点来看:如果您有足够的测试用例,那么请尝试一下。

这样做很好。我已经做过很多次了。我总是从SpringAOP开始,因为它很简单,只有在我需要SpringAOP没有提供的一些功能时才开始使用AspectJ

我唯一的建议是尽可能多地使用
@AspectJ
样式,这样您就可以轻松地通过微小的配置更改进行更改

如果您不熟悉注释样式,可以在Espen Berntsen的博客上找到更多有关注释样式的信息