@AfterReturning(pointcut="bizPoint()",returning="returnValue")
在前面的ppt中:
pointcut=“业务逻辑下的类的方法(以前说的切入点)”
在现在的代码中
pointcut="bizPoint()"如果我把这个bizPoint()方法理解为ppt中所说的业务逻辑中的类的方法,那可以看到,这个方法的返回值是空的,returning就没有意义。
所以应该吧bizPoint()理解为你说的“切入点”(以前认为的切面),returning是这个“切入点”操作的业务逻辑类中方法的返回值,那么问题又来了,要是这个“切入点”切的类中有多个方法 ,这些方法都有返回值,那returning又是什么呢?????
1.这里的可以把这里public void pointcut() {}方法理解成具体pointcut(切入点)的声明,实际对应的切入点是“execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))”;
2.@AfterReturning,是在返回后执行,returning="returnValue"的“returnValue”就是具体的方法(* com.imooc.aop.aspectj.biz.*Biz.*(..))的返回值,对应public void afterReturning(Object returnValue)
的方法参数,名称一定要对应,在方法返回后,可以进行一些操作,比如输出返回值或者根据返回值进行一些操作。
这样解释,不知道你清楚了没有
1.可以把public void pointcut() {}理解成具体切入点@Pointcut("execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))")的声明;
2.@AfterReturning(pointcut="bizPointcut()", returning="returnValue")是在具体业务方法返回后的操作,所以returning="returnValue"对应的是业务方法 的返回值,不是切入点声明的返回值,且要与public void afterReturning(Object returnValue)的参数名称对应。
不知道这样解释你明白了没有
1.可以把public void pointcut() {}理解成具体切入点@Pointcut("execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))")的声明;
2.@AfterReturning(pointcut="bizPointcut()", returning="returnValue")是在具体业务方法返回后的操作,所以returning="returnValue"对应的是业务方法的返回值,不是切入点声明的返回值,且要与public void afterReturning(Object returnValue)的参数名称对应。
不知道这样解释你明白了没有
我也清楚了。谢谢