产生该错误的原因是我们在使用AfterReturning注解的时候,没有定义返回的参数,但是拦截的方法中缺需要传入一个参数,比如下面的“_result”参数。如果AfterReturing注解拦截的方法需要接收参数,需要在AfterReturning中声明。
错误的代码:
@AfterReturning("execution (* com.trs.components.mgr.StudentMgr.update(..))")
public void writeAge(Object _result) {
System.out.println("result::" + _result);
System.out.println("我是另外一个切面,年龄::" + 23);
}
正确的代码(注意下面的红色字体,申明了一个返回名为“_result”的变量):
@AfterReturning(pointcut = "execution (* com.trs.components.mgr.StudentMgr.update*(..))", returning = "_result")
public void writeAge(Object _result) {
System.out.println("result::" + _result);
System.out.println("我是另外一个切面,年龄::" + 23);
}