org.springframework.aop.support

## 类 ControlFlowPointcut

- java.lang.Object
- - org.springframework.aop.support.ControlFlowPointcut

- 所有已实现的接口:
    Serializable, ClassFilter, MethodMatcher, Pointcut

      public class ControlFlowPointcut
      extends Object
      implements Pointcut, ClassFilter, MethodMatcher, Serializable

  Pointcut and method matcher for use in simple cflow-style pointcut. Note that evaluating such pointcuts is 10-15 times slower than evaluating normal pointcuts, but they are useful in some cases.
  作者:
    Rod Johnson, Rob Harrop, Juergen Hoeller
  另请参阅:
    序列化表格

- - ### 字段概要

    - ### 从接口继承的字段 org.springframework.aop.Pointcut

      `TRUE`

    - ### 从接口继承的字段 org.springframework.aop.ClassFilter

      `TRUE`

    - ### 从接口继承的字段 org.springframework.aop.MethodMatcher

      `TRUE`

  - ### 构造器概要

    构造器
    构造器和说明
    `ControlFlowPointcut(Class<?> clazz)` Construct a new pointcut that matches all control flows below that class.
    `ControlFlowPointcut(Class<?> clazz, String methodName)` Construct a new pointcut that matches all calls below the given method in the given class.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `boolean` | `equals(Object other)`
    `ClassFilter` | `getClassFilter()` Return the ClassFilter for this pointcut.
    `int` | `getEvaluations()` It's useful to know how many times we've fired, for optimization.
    `MethodMatcher` | `getMethodMatcher()` Return the MethodMatcher for this pointcut.
    `int` | `hashCode()`
    `boolean` | `isRuntime()` Is this MethodMatcher dynamic, that is, must a final call be made on the `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method at runtime even if the 2-arg matches method returns `true`?
    `boolean` | `matches(Class<?> clazz)` Subclasses can override this for greater filtering (and performance).
    `boolean` | `matches(Method method, Class<?> targetClass)` Subclasses can override this if it's possible to filter out some candidate classes.
    `boolean` | `matches(Method method, Class<?> targetClass, Object... args)` Check whether there a runtime (dynamic) match for this method, which must have matched statically.

    - ### 从类继承的方法 java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### ControlFlowPointcut

          public ControlFlowPointcut(Class<?> clazz)

      Construct a new pointcut that matches all control flows below that class.
      参数:
        `clazz` - the clazz

    - #### ControlFlowPointcut

          public ControlFlowPointcut(Class<?> clazz,
                                     @Nullable
                                     String methodName)

      Construct a new pointcut that matches all calls below the given method in the given class. If no method name is given, matches all control flows below the given class.
      参数:
        `clazz` - the clazz
        `methodName` - the name of the method (may be `null`)

  - ### 方法详细资料

    - #### matches

          public boolean matches(Class<?> clazz)

      Subclasses can override this for greater filtering (and performance).
      指定者:
        `matches` 在接口中 `ClassFilter`
      参数:
        `clazz` - the candidate target class
      返回:
        whether the advice should apply to the given target class

    - #### matches

          public boolean matches(Method method,
                                 @Nullable
                                 Class<?> targetClass)

      Subclasses can override this if it's possible to filter out some candidate classes.
      指定者:
        `matches` 在接口中 `MethodMatcher`
      参数:
        `method` - the candidate method
        `targetClass` - the target class (may be `null`, in which case the candidate class must be taken to be the method's declaring class)
      返回:
        whether or not this method matches statically

    - #### isRuntime

          public boolean isRuntime()

      从接口复制的说明: `MethodMatcher`
      Is this MethodMatcher dynamic, that is, must a final call be made on the `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method at runtime even if the 2-arg matches method returns `true`?

      Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation,

      指定者:
        `isRuntime` 在接口中 `MethodMatcher`
      返回:
        whether or not a runtime match via the 3-arg `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method is required if static matching passed

    - #### matches

          public boolean matches(Method method,
                                 @Nullable
                                 Class<?> targetClass,
                                 Object... args)

      从接口复制的说明: `MethodMatcher`
      Check whether there a runtime (dynamic) match for this method, which must have matched statically.

      This method is invoked only if the 2-arg matches method returns `true` for the given method and target class, and if the `MethodMatcher.isRuntime()` method returns `true`. Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.

      指定者:
        `matches` 在接口中 `MethodMatcher`
      参数:
        `method` - the candidate method
        `targetClass` - the target class (may be `null`, in which case the candidate class must be taken to be the method's declaring class)
        `args` - arguments to the method
      返回:
        whether there's a runtime match
      另请参阅:
        `MethodMatcher.matches(Method, Class)`

    - #### getEvaluations

          public int getEvaluations()

      It's useful to know how many times we've fired, for optimization.

    - #### getClassFilter

          public ClassFilter getClassFilter()

      从接口复制的说明: `Pointcut`
      Return the ClassFilter for this pointcut.
      指定者:
        `getClassFilter` 在接口中 `Pointcut`
      返回:
        the ClassFilter (never `null`)

    - #### getMethodMatcher

          public MethodMatcher getMethodMatcher()

      从接口复制的说明: `Pointcut`
      Return the MethodMatcher for this pointcut.
      指定者:
        `getMethodMatcher` 在接口中 `Pointcut`
      返回:
        the MethodMatcher (never `null`)

    - #### equals

          public boolean equals(Object other)

      覆盖:
        `equals` 在类中 `Object`

    - #### hashCode

          public int hashCode()

      覆盖:
        `hashCode` 在类中 `Object`