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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301372/article/details/81488773

切入点的表达式

  • 在配置切入点的时候,需要定义表达式,格式如下:
    • 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对来让目标对象的方法执行。

猜你喜欢

转载自blog.csdn.net/u011301372/article/details/81488773