[Spring笔记] Spring-33-Advice通知类型

Spring-33-Advice通知类型

  1. @Before 前置通知
  2. @After 后置通知
  3. @Around 环绕通知
  4. @AfterReturning 返回后通知
  5. @AfterThrowing 异常抛出后通知

重点:@Around 环绕通知

  • 环绕通知中需要一个 ProceedingJoinPoint 类作为参数,调用此类中的 proceed() 方法才能对原始方法进行调用,否则将不执行原始方法

  • 当原始方法有返回值时,通常将环绕通知的方法返回类型设置为 Object,调用 proceed() 获得原始返回值,再将其返回

  • 当原始方法无返回值时,也可以将环绕通知的返回类型设置为 Object

  • 环绕通知中可以循环调用多次 proceed() 方法,而只需要返回一次

  • 由于无法预知原始方法是否会抛出异常,因此环绕通知方法必须抛出 Throwable 对象

    // 示例:将原始方法循环调用 10000 次计算耗时
    @Around("pt()")
    public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
        long start = System.currentTimeMillis();
        
        Object res = null;
        for (int i = 0; i < 10000; i ++)
            res = pjp.proceed();

        long end = System.currentTimeMillis();
        System.out.println("耗时:" + (end - start) + " ms");
        return res;
    }

视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix?p=35

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值