码迷,mamicode.com
首页 > 编程语言 > 详细

Spring的切入点表达式

时间:2020-04-06 13:22:58      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:访问权限   amp   现在   方法   a*   使用   add   nbsp   execution   

@PointCut切入点表达式语法格式是:execution(访问权限 返回值类型 方法全限定名(参数类型列表))

  限定符:

    *:

      1)匹配某全类名下,任意或多个方法:

         表示匹配com.zdc.aop.Calculator下以a打头的任意方法。并且返回值和两个参数都是int类型。

       execution(public int com.zdc.aop.Calculator.a*(int, int))

              表示匹配com.zdc.aop.Calculator下的任意方法。并且返回值和两个参数都是int类型。

       execution(public int com.zdc.aop.Calculator.*(int, int))

      2)在Spring中只有public权限能拦截到,访问权限可以省略(访问权限不能写*):

          // 权限省略,表示任意类型的访问权限 ,但Spring现在只支持public权限

            execution(int com.zdc.aop.Calculator.*(int, int))

      3)匹配任意类型的返回值,可以使用 * 表示:

         execution(* com.zdc.aop.Calculator.*(int, int))

      4) 任意类型参数:

          // 表示第二个参数是任意类型

        execution(* com.zdc.aop.Calculator.*(int,*))

  ..:可以匹配多层路径,或任意多个任意类型参数:

      // 表示com和aop之间可以有任意层级的包

      execution(* com..aop.Calculator.*(int,int))

      // 表示第一个参数是int。之后可以有任意个任意类型的参数

      execution(* com.zdc.aop.Calculator.*(int,..))

  切入点表达式连接:&& 、||:

    // 表示需要同时满足两个表达式

       @Before("execution(public int com.zdc.aop.Calculator.add(int, int))"

             + " && "

      + "execution(public * com.zdc.aop.Calculator.add(..))")

     // 表示两个条件只需要满足一个,就会被匹配到

       @Before("execution(public int com.zdc.aop.Calculator.add(int, int))"

           + " || "

           + "execution(public * com.zdc.aop.Calculator.a*(int))")

  

Spring的切入点表达式

标签:访问权限   amp   现在   方法   a*   使用   add   nbsp   execution   

原文地址:https://www.cnblogs.com/Life-is-Demo/p/12641442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!