SpringAop切点表达式

 

1.1 SpringAop切点表达式 

  execution([访问修饰符]返回值类型 包名.类名.方法名(参数))

       execution(public void com.zhan.aop.Target.method())

  • 访问修饰符可以省略
    • execution(void com.zhan.aop.Target.*())
  • 返回值类型、包名、类名、方法名可以用 * 代表任意
    • execution(* com.zhan.aop.*.*(..))
  • 包名与类名之间有个.代表当前包下的类,两个点..表示当前包及子包下的类
    • execution(* com.zhan.aop..*.*(..))
  • 参数列表可以使用两个点..表示任意个数,任意类型的参数列表
    • execution(* *..*.*(..))

 

 1.2 XML配置AOP详解

 <aop:通知类型 method="切面类中方法名" pointcut="切点表达式"></aop:通知类型>

   

名称 标签 说明
前置通知 <aop:before> 用于配置前置通知,指定增强的方法在切入点方法之前执行。
后置通知 <aop:after-returning> 用于配置后置通知,指定增强的方法在切入点方法之后执行。
环绕通知 <aop:around> 用于配置环绕通知,指定增强的方法在切入点方法之前和之后都执行。
异常抛出通知 <aop:after-throwing> 用于配置异常抛出通知,指定增强的方法在出现异常时执行。
最终通知 <aop:after> 用于配置最终通知,无论增强方式执行是否有异常都会执行。

 

注意:当使用@Around处理时,我们需要将第一个参数定义为ProceedingJoinPoint类型,该类是JoinPoint的子类。

 

 

 

 

 1.3 切点表达式的抽取

 当多个增强的切点表达式相同时,可以将切点表达式进行抽取,在增强中使用pointcut-ref属性代替pointcut属性来引用抽取的切点表达式。

 

posted @ 2021-03-02 16:09  year12  阅读(241)  评论(0编辑  收藏  举报