为了账号安全,请及时绑定邮箱和手机立即绑定

@AfterReturning(pointcut="bizPoint()",returning="returnValue") 这里说的bizPoint()是业务逻辑中的类的方法,还是“切入点”

@AfterReturning(pointcut="bizPoint()",returning="returnValue")

在前面的ppt中: 

    pointcut=“业务逻辑下的类的方法(以前说的切入点)”

在现在的代码中  

    pointcut="bizPoint()"如果我把这个bizPoint()方法理解为ppt中所说的业务逻辑中的类的方法,那可以看到,这个方法的返回值是空的,returning就没有意义。

    所以应该吧bizPoint()理解为你说的“切入点”(以前认为的切面),returning是这个“切入点”操作的业务逻辑类中方法的返回值,那么问题又来了,要是这个“切入点”切的类中有多个方法 ,这些方法都有返回值,那returning又是什么呢?????

正在回答

6 回答

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 回复 有任何疑惑可以回复我~
#1

抗货产品汪 提问者

抱歉,回复晚了,我看懂了,谢谢!!!
2014-12-05 回复 有任何疑惑可以回复我~
#2

moocer

不用客气,弄明白最重要。
2014-12-05 回复 有任何疑惑可以回复我~

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)的参数名称对应。

不知道这样解释你明白了没有

0 回复 有任何疑惑可以回复我~

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)的参数名称对应。

不知道这样解释你明白了没有

0 回复 有任何疑惑可以回复我~

我也清楚了。谢谢

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

@AfterReturning(pointcut="bizPoint()",returning="returnValue") 这里说的bizPoint()是业务逻辑中的类的方法,还是“切入点”

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信