1.作用
通过表达式的方式定位一个或多个具体的连接点。
2.语法细节
execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名]([参数列表]))
表达式 | execution(* com.atguigu.spring.ArithmeticCalculator.*(…)) |
---|
含义 | ArithmeticCalculator接口中声明的所有方法。第一个※代表任意修饰符及任意返回值。第二个“*”代表任意方法。“…”匹配任意数量、任意类型的参数。若目标类、接口与该切面类在同一个包中可以省略包名。 |
表达式 | execution(public * ArithmeticCalculator.*(…)) |
---|
含义 | ArithmeticCalculator接口的所有公有方法 |
表达式 | execution(public double ArithmeticCalculator.*(…)) |
---|
含义 | ArithmeticCalculator接口中返回double类型数值的方法 |
表达式 | execution(public double ArithmeticCalculator.*(double, …)) |
---|
含义 | 第一个参数为double类型的方法。“…” 匹配任意数量、任意类型的参数。 |
表达式 | execution(public double ArithmeticCalculator.*(double, double)) |
---|
含义 | 参数类型为double,double类型的方法 |
- 3)在AspectJ中,切入点表达式可以通过 “&&”、“||”、“!”等操作符结合起来。
execution (* *.add(int,..)) || execution(* *.sub(int,..))
!execution (* *.add(int,..))
3.切入点表达式应用到实际的切面类中

