@Around 返回值

来源:3-4 环绕通知

饭勺超人

2019-10-04 14:40:33

@Around(value = "execution(public * com.wenqiang.aspectj.demo1.ProductDao.update (..))")
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    System.out.println("环绕前通知");
    Object o =proceedingJoinPoint.proceed();
    System.out.println("环绕后通知");
    return o;
   // return null;
}

    @Test
    public void demo1(){
//        productDao.delete();
//        productDao.finaAll();
//        productDao.findOne();
//        productDao.save();
          productDao.update();
    }

http://img.mukewang.com/climg/5d96e84409334e0908310247.jpgaround 方法中,return o, retuen null的执行结果都是一样的,那around方法中的return 作用是什么?

http://img.mukewang.com/climg/5d96e8d009af7e1208100098.jpghttp://img.mukewang.com/climg/5d96e90309d19a7805260212.jpg

输出结果最后那串代表的是什么意思

另外,阻止目标方法执行时:

  @Around(value = "execution(public * com.wenqiang.aspectj.demo1.ProductDao.update (..))")
    public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        System.out.println("环绕前通知");
//        Object o =proceedingJoinPoint.proceed();
        System.out.println("环绕后通知");
        return null;
    }

写么?谢谢老师

写回答

1回答

好帮手慕柯南

2019-10-06

同学你好!

  1. 同学这里无论返回什么,最终的结果都是一样的原因是:被增强的类本身没有返回值,或者同学没有打印输出返回值。当有返回值时如果返回null最终的结果会返回null,比如:

    http://img.mukewang.com/climg/5d99cc90096af72d05780166.jpg

    http://img.mukewang.com/climg/5d99ccb0097c506007680153.jpghttp://img.mukewang.com/climg/5d99ccdd0904b96404430121.jpg

  2. 阻止目标方法执行,同学的想法时正确的。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 8263 问题

查看课程