Spring之AOP的切入点表达式和通知类型

切入点的表达式

  • 在配置切入点的时候,需要定义表达式,格式如下:
    • execution(public * * (..)),
    • 具体的展开如下:
      • 切入点表达式的格式如下:
        • execution([修饰符] 返回值类型 包名.类名.方法名(参数))
      • 修饰符可以省略不写,不是必须要出现的
      • 返回值类型是不能省略不写的,根据你的方法来编写返回值,可以使用*代替,表示任意类型
      • 包名例如:cn.xd.demo3.BookDaoImpl
        • 首先com是不能省略不写的,但是可以使用*代替
        • 中间的包名可以使用*号代替
        • 如果想省略中间的包名可以使用..
      • 类名也可以使用 * 号代替,也有类似的写法:*DaoImpl
      • 方法也可以使用*号代替
      • 参数如果是一个参数可以使用*号代替,如果想代表任意参数使用..

通知类型

前置通知

  • 在目标类的方法执行之前执行
  • 配置文件信息:<aop:after method="before" pointcut-ref="myPointcut3"/>
  • 应用:可以对方法的参数来做校验

最终通知

  • 在目标类的方法执行之后执行,如果程序出现异常,最终通知也会执行
  • 在配置文件中编写具体的配置:<aop:after method = "after" pointcut-ref="myPointcut3"/>
  • 应用:例如像释放资源

后置通知

  • 方法正常执行后的通知
  • 在配置文件中编写具体的配置:<aop:after-returning method="afterReturning" pointcut-ref="myPointcut3"/>
    异常抛出通知
  • 在抛出异常后通知
  • 在配置文件中编写具体的配置:<aop:after-throwing method="afterThrowing" pointcut-ref="myPointcut3">
  • 应用:包装异常的信息

环绕通知

  • 方法的执行前后执行
  • 在配置文件中编写具体的配置:<aop:around method="around" pointcut-ref="myPointcut3">
  • 要注意:目标的方法默认不执行,需要使用ProceedingJoinPoint对来让目标对象的方法执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值