springaop 切点表达式
时间: 2023-08-05 17:09:27 浏览: 101
Spring实现AOP的多种方式 切点函数
Spring AOP 切点表达式用于指定在哪些方法上应用切面逻辑。切点表达式由以下两部分组成:
1. 表达式主体:用于指定哪些方法将被切面逻辑所影响。
2. 切点指示符:用于指定在哪个类或接口上应用切面逻辑。
常见的切点表达式语法有:
- execution:用于匹配方法的执行,其语法为 `execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)`。例如 `execution(* com.example.service.*.*(..))` 可以匹配 `com.example.service` 包下的所有类的所有方法。
- within:用于匹配特定类型的方法执行,其语法为 `within(type-pattern)`。例如 `within(com.example.service.*)` 可以匹配 `com.example.service` 包下的所有方法。
- this:用于匹配指定类型的bean,其语法为 `this(beanName)`。例如 `this(accountService)` 可以匹配类型为 `accountService` 的bean上的所有方法。
- target:用于匹配指定类型的目标对象,其语法为 `target(beanName)`。例如 `target(accountService)` 可以匹配类型为 `accountService` 的目标对象上的所有方法。
除了上述常见的切点指示符,Spring AOP 还支持其他一些表达式,如 args、@annotation 等。你可以根据具体需求选择合适的切点表达式来定义切点。
阅读全文