目录
- 表达式语法
- 切入点表达式中各符号的含义
- 通过案例来演示表达式的不同写法
- 项目结构
- 目标类的切入点表达式
- 目标类子类的切入点表达式
- 两者通用的切入点表达式
表达式语法
execution(修饰符 返回值类型 包名.类名.方法名(参数类型) 抛出异常类型)
execution(修饰符 返回值类型 包名.类名.方法名(参数类型) 抛出异常类型)
红色字体的是必选参数,蓝色字体的是可选参数
切入点表达式中各符号的含义
符号 |
含义 |
---|---|
* |
表示任意字符 |
… |
1.用在参数中,表示任意多个参数 2.用在包名后面,表示当前包及其子包 |
+ |
1.用在类名后面,表示当前类及其子类 2.用在接口名后面,表示当前接口及其实现类 |
通过案例来演示表达式的不同写法
项目结构
目标类的切入点表达式
写法一:
execution(public void aspect.TargetImpl.calculation(int,int))
写法二:
execution(public void *..TargetImpl.calculation(int,int))
写法三:
execution(public void *..TargetImpl.*(int,int))
写法四:
execution(public void *..TargetImpl.*(..))
目标类子类的切入点表达式
写法一:
execution(public void aspect.TargetImplExt.calculation(int,int))
写法二:
execution(public void *..TargetImplExt.calculation(int,int))
写法三:
execution(public void *..TargetImplExt.*(..))
两者通用的切入点表达式
写法一:
execution(public void aspect.TargetImpl+.calculation(int,int))
写法二:
execution(public void *..TargetImpl+.calculation(int,int))
写法三:
execution(public void *..TargetImpl+.*(..))
写法四:
execution(public void *..*.calculation(int,int))
写法五:
execution(public void *..*.*(int,int))
写法六:
execution(public void *..*.*(..))
写法七:
execution(public void calculation(int,int))
写法八:
execution(void calculation(int,int))
写法九:
execution(void calculation(..))
写法十:
execution(void *(..))