spring 基于xml的申明式AspectH中的后置通知的返回值获取
1. 配置文件
<aop:config>
<aop:aspect ref="myAspect">
<aop:pointcut expression="execution(* springAspectJ.*.*(..))" id="myPointCut" />
<aop:after-returning method="myAfterReturning" pointcut-ref="myPointCut" returning="returnVal"/>
</aop:aspect>
</aop:config>
<aop:after-returning method="myAfterReturning" pointcut-ref="myPointCut" returning="returnVal"/>
中的returnVal
就是返回值的名称
2. 切面类
import org.aspectj.lang.JoinPoint;
public class MyAspect {
public void myAfterReturning(JoinPoint joinpoint) {
System.out.println("后置通知");
}
}
注意该类中的public void myAfterReturning(JoinPoint joinpoint)
方法只要加上参数Object returnVal
就可以,注意“returnVal”名称必须和配置文件中的相同,不然会报错,如下
public void myAfterReturning(JoinPoint joinpoint, Object returnVal) {
System.out.println("后置通知");
}
另外:public void myAfterReturning(JoinPoint joinpoint)
中的参数类型是JoinPoint
是org.aspectj.lang.JoinPoint
这个包的,不要写成Joinpoint
了,不然报错都不好发现