AI智能
改变未来

学习笔记(05-02-B):使用AspectJ基于XML开发AOP笔记补充-execution表达式详解

学习笔记(05-02)的代码中用到了AspectJ的切入点表达式—execution表达式即:
在xml的配置方式中配置切入点

<aop:pointcut expression=“execution(* com.aop.UserDao.addUser(…))” id=“myPointcut”/>

以上的代码中用到了切点函数execution(),用来匹配切入的位置。其语法如下所示:

execution(<修饰符模式>? <返回类型模式> <方法名模式>(<参数模式>) <异常模式>?)

除了返回类型模式、方法名模式和参数模式外,其它项都是可填可不填的。举个例子解释:

execution (* com.aop…*. *(…))

¤用来匹配com.aop中声明的所有方法。
解释:

  1. 第一个*代表任意修饰符及任意返回值,
  2. 然后是包名,后面的..表示当前包和当前包的所有子包
  3. 第二个*号是类名,*号表示所有的类
  4. 第三个*代表任意方法,括号中..表示用来匹配任意数量的参数。
  5. 若目标类与接口与切面在同一个包中,可以省略包名。

¤几个典型例子:

//匹配任意返回值的,在com.aop包中的所有UserDao接口对象下的公有方法
execution(public * com.aop.UserDao.(…))
//匹配包里面的所有类的所有公有方法
execution(public * com.aop..(…))
//匹配所有UserDao接口对象的所有公有方法
execution(public * UserDao.(…))
//匹配所有UserDao接口对象中返回double类型的方法
execution(public double UserDao.(…))
//匹配所有UserDao接口对象中返回double类型的第一个参数为double类型的任意方法, …匹配任意数量任意类型的参数
execution( * double UserDao.(double, …))
//匹配所有UserDao接口对象中参数类型为double, double的共有方法
execution(public UesrDao.(double, double))

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 学习笔记(05-02-B):使用AspectJ基于XML开发AOP笔记补充-execution表达式详解