springboot aop注意事项 防踩坑

  1. @Around 才有ProceedingJoinPoint ,且需要利用aop拦截方法时 只有ProceedingJoinPoint才会进入核心代码生效

  2. @Around 一定要return proceed 否则程序进入切面后终止在这里插入图片描述

  3. @AfterReturning 返回后通知中,

    •  如果参数中的第一个参数为JoinPoint,则第二个参数为返回值的信息
      
    •  如果参数中的第一个参数不为JoinPoint,则第一个参数为returning中对应的参数
      
    •   returning:限定了只有目标方法返回值与通知方法相应参数类型时才能执行后置返回通知,否则不执行(例如 注解所在方法 return string, 而returning 对应参数为JoinPoint jp ,Entity e)时 不会执行 )
      
    •   对于returning对应的通知方法参数为Object类型将匹配任何目标返回值
      
  4. 如果切面用来做日志记录等操作 切入注解应该在controller层 不要放在service层,否则切了个寂寞 要等日志插入数据库 接口才会返回

  5. 注解形式 aop写法

import org.aspectj.lang.annotation.*;

@Aspect
@Component
public class AopAspect {
	// 自定义注解 AopAnno
    @Pointcut("@annotation(com.boot.annotation.AopAnno)")
    public void doAround() {}
    // value为上面的方法名
     @Around(value = "doAround()")
    public Object addOper(ProceedingJoinPoint point) throws Throwable {
     	Object proceed = point.proceed();
     	// do something
     	return proceed;
    }
}

// 自定义注解类 注意一下ElementType就好了

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AopAnno {
   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟秋与你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值