出于某种原因,我的 Spring AOP 建议被调用了两次。我检查了:
Spring AOP 建议被调用了两次,但我没有使用 Component 注释,而是声明了一次切面 bean 并使用 @Aspect 对其进行了注释,仅此而已。
有点晚了,我意识到我的一个类还没有实现接口,这导致了 CGLIB2 需求。我解决了这个问题,CGLIB2 问题消失了,但双重调用仍然存在。
编辑:
忘了说我查过了,建议的方法没有被调用两次。
第二次编辑:
我用@Aspect 声明一个类,然后在应用程序上下文中将它声明为一个bean。XML 文件中没有建议或切入点。
第三次编辑:
另外值得注意的是,我在执行周围建议的方法之前和之后记录:
log.info("before");
pjp.proceed();
log.info("after");
我看到的是:
before
before
after
after
这真的很奇怪。
我设置的@Before 和@Around 建议都会发生这种情况。我还没有尝试过其他类型。
这是切入点声明,但名称已更改:
@Around("execution(public java.util.List<java.lang.String> pac.age.names.myDAO.doSomething(java.lang.String, java.lang.String))")
有任何想法吗?
谢谢,
浮潜