0
我只是用AspectJ(1.6)和Spring(2.5)一起玩,但它似乎沒有以正確的方式工作。 設置我「的beans.xml」使用:Spring AOP錯過了什麼
<aop:aspectj-autoproxy/>
<bean id="testBean1" class="apackage.MyClass">
<bean id="aopBean1" class="apackage.AfterReturningExample"/>
與設置正確的命名空間和其他一些豆類,沒有意義。 我使用一個簡單的豆,以測試建議:
package apackage;
@Aspect
public class MyClass {
public MyClass()
{
}
public Boolean testAspectJ()
{
System.out.println("returning from MyClass.testAspectJ()");
return false;
}
}
而這正是AOP豆:
package apackage;
@Aspect
public class AfterReturningExample {
public AfterReturningExample(){}
@AfterReturning("execution(* apackage.MyClass.*(..))")
public void test() throws Exception{
System.err.println("\n\n#### After Returning MyClass.testAspectJ()\n\n");
}
}
最後這是測試代碼(主法):
ApplicationContext ctx = new ClassPathXmlApplicationContext("apackage/beans.xml");
MyClass bean = (MyClass) ctx.getBean("testBean1");
bean.testAspectJ();
輸出僅打印:
returning from MyClass.testAspectJ()
奇怪的是,如果我使用的切入點:
"execution(public * *(..))"
的日誌顯示AfterReturningExample類的System.out.println。 我錯過了什麼?
找到解決方案! – 2010-09-19 22:54:40