Pointcut优化

master
linlei 2024-04-26 14:53:17 +08:00
parent 1b08aae6aa
commit 4fdff4ada6
1 changed files with 7 additions and 2 deletions

View File

@ -35,6 +35,7 @@
+ 提供了匹配规则,以确定在哪些方法上应用切面。这些规则可以基于方法的名称、参数、返回类型、类名称等多种条件来定义,从而实现对切入点的精确定位。 + 提供了匹配规则,以确定在哪些方法上应用切面。这些规则可以基于方法的名称、参数、返回类型、类名称等多种条件来定义,从而实现对切入点的精确定位。
3. **获取类过滤器** 3. **获取类过滤器**
+ `getClassFilter()` 方法用于获取一个 `ClassFilter` 对象,该对象用于确定哪些类应该被匹配。我们可以根据自己的需求自定义类过滤逻辑。 + `getClassFilter()` 方法用于获取一个 `ClassFilter` 对象,该对象用于确定哪些类应该被匹配。我们可以根据自己的需求自定义类过滤逻辑。
4. **获取方法匹配器** 4. **获取方法匹配器**
@ -89,6 +90,7 @@ public interface Pointcut {
+ 根据方法名称匹配的切入点。可以配置指定的方法名称或通配符,以匹配目标类中的方法。 + 根据方法名称匹配的切入点。可以配置指定的方法名称或通配符,以匹配目标类中的方法。
2. **JdkRegexpMethodPointcut** 2. **JdkRegexpMethodPointcut**
+ 使用正则表达式匹配方法的切入点。可以使用正则表达式指定方法的匹配规则。 + 使用正则表达式匹配方法的切入点。可以使用正则表达式指定方法的匹配规则。
3. **AspectJExpressionPointcut** 3. **AspectJExpressionPointcut**
@ -380,8 +382,11 @@ MethodMatcher MyService setName = true
1. **切入点表达式定义错误** 1. **切入点表达式定义错误**
+ 使用 AspectJ 表达式时,可能会由于表达式定义错误导致切入点匹配失败。例如,表达式写错了、漏掉了必要的切入点信息等。 + 使用 AspectJ 表达式时,可能会由于表达式定义错误导致切入点匹配失败。例如,表达式写错了、漏掉了必要的切入点信息等。
3. **切入点过于宽泛**
+ 切入点定义过于宽泛,导致匹配到了不必要的方法,使得通知影响范围过大。这可能会导致性能问题或意外的行为。 2. **切入点过于宽泛**
+ 切入点定义过于宽泛,导致匹配到了不必要的方法,使得通知影响范围过大。这可能会导致性能问题或意外的行为。
4. **切入点过于狭窄** 4. **切入点过于狭窄**
+ 切入点定义过于狭窄,导致无法匹配到预期的目标方法,使得通知无法正确应用。这可能会导致切面无法达到预期的效果。 + 切入点定义过于狭窄,导致无法匹配到预期的目标方法,使得通知无法正确应用。这可能会导致切面无法达到预期的效果。