由于某种原因,我的Spring AOP建议被调用两次。我查了一下:Spring AOP建议叫做Twice
Spring AOP advice is called twice,但我不使用的组件注释,和我曾经声明方面豆,用@Aspect注解它,就是这样。
有点迟到我意识到我的一个类没有实现一个接口,这导致了CGLIB2的要求。我解决了这个问题,CGLIB2问题消失了,但双重调用依然存在。
编辑:
忘了提,我检查,被通知的方法不叫了两次。
2日编辑:
我声明一个类有@Aspect,然后我宣布它作为应用程序上下文的bean。 XML文件中没有建议或切入点。
3日编辑:
另外值得一提的是,我之前和方法执行后日志被建议与周边:
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))")
任何想法?
感谢,
浮潜
你正在扫描软件包吗?你说你正在声明aspect bean一次(用xml?),然后注释它。这会导致双重调用。 – 2012-07-17 04:53:25
我正在使用 , 然后我有一个实现了建议的类。 AFAIK,这些都是最简单的步骤。谢谢! –
MrSilverSnorkel
2012-07-17 05:01:04
如果你的建议被调用两次,但只有方法被称为一个,你可能调用两种不同的方法吗? – jddsantaella 2012-07-17 05:15:22