@Aspect的execution规则说明
时间: 2023-10-01 11:11:49 浏览: 75
基于springboot的过滤器。拦截器,Aspect,定时器
在使用@Aspect注解定义切面时,我们可以使用execution规则来指定切点表达式,从而选择需要被切入的连接点。
execution规则的语法如下:
```
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
```
其中,各个部分的含义如下:
- modifiers-pattern:表示方法的修饰符,可选项,如public、protected、private、static等。
- ret-type-pattern:表示方法的返回值类型,可选项,如void、java.lang.String等。
- declaring-type-pattern:表示方法所在的类,可选项,如com.example.demo.service.UserService等。
- name-pattern:表示方法的名称,必选项,如getUser、addUser等。
- param-pattern:表示方法的参数类型,可选项,如java.lang.String、java.lang.Integer等。
- throws-pattern:表示方法抛出的异常类型,可选项,如java.lang.Exception等。
除了以上规则外,还可以使用通配符*表示任意内容,使用..表示任意数量的参数。
例如,以下是一个execution规则的示例:
```
@Around("execution(* com.example.demo.service.UserService.*(..))")
public void doSomething(ProceedingJoinPoint joinPoint) throws Throwable {
//切面逻辑
}
```
该规则表示匹配com.example.demo.service.UserService中所有方法的执行,而参数列表可以是任意类型和数量。
阅读全文