org.springframework.aop.framework

## 类 AopProxyUtils

- java.lang.Object
- - org.springframework.aop.framework.AopProxyUtils

-     public abstract class AopProxyUtils
      extends Object

  Utility methods for AOP proxy factories. Mainly for internal use within the AOP framework.

  See `AopUtils` for a collection of generic AOP utility methods which do not depend on AOP framework internals.

  作者:
    Rod Johnson, Juergen Hoeller
  另请参阅:
    `AopUtils`

- - ### 构造器概要

    构造器
    构造器和说明
    `AopProxyUtils()`

  - ### 方法概要

    所有方法 静态方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `static Class<?>[]` | `completeProxiedInterfaces(AdvisedSupport advised)` Determine the complete set of interfaces to proxy for the given AOP configuration.
    `static boolean` | `equalsAdvisors(AdvisedSupport a, AdvisedSupport b)` Check equality of the advisors behind the given AdvisedSupport objects.
    `static boolean` | `equalsInProxy(AdvisedSupport a, AdvisedSupport b)` Check equality of the proxies behind the given AdvisedSupport objects.
    `static boolean` | `equalsProxiedInterfaces(AdvisedSupport a, AdvisedSupport b)` Check equality of the proxied interfaces behind the given AdvisedSupport objects.
    `static Object` | `getSingletonTarget(Object candidate)` Obtain the singleton target object behind the given proxy, if any.
    `static Class<?>[]` | `proxiedUserInterfaces(Object proxy)` Extract the user-specified interfaces that the given proxy implements, i.e. all non-Advised interfaces that the proxy implements.
    `static Class<?>` | `ultimateTargetClass(Object candidate)` Determine the ultimate target class of the given bean instance, traversing not only a top-level proxy but any number of nested proxies as well — as long as possible without side effects, that is, just for singleton targets.

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

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

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

    - #### AopProxyUtils

          public AopProxyUtils()

  - ### 方法详细资料

    - #### getSingletonTarget

          @Nullable
          public static Object getSingletonTarget(Object candidate)

      Obtain the singleton target object behind the given proxy, if any.
      参数:
        `candidate` - the (potential) proxy to check
      返回:
        the singleton target object managed in a `SingletonTargetSource`, or `null` in any other case (not a proxy, not an existing singleton target)
      从以下版本开始:
        4.3.8
      另请参阅:
        `Advised.getTargetSource()`, `SingletonTargetSource.getTarget()`

    - #### ultimateTargetClass

          public static Class<?> ultimateTargetClass(Object candidate)

      Determine the ultimate target class of the given bean instance, traversing not only a top-level proxy but any number of nested proxies as well — as long as possible without side effects, that is, just for singleton targets.
      参数:
        `candidate` - the instance to check (might be an AOP proxy)
      返回:
        the ultimate target class (or the plain class of the given object as fallback; never `null`)
      另请参阅:
        `TargetClassAware.getTargetClass()`, `Advised.getTargetSource()`

    - #### completeProxiedInterfaces

          public static Class<?>[] completeProxiedInterfaces(AdvisedSupport advised)

      Determine the complete set of interfaces to proxy for the given AOP configuration.

      This will always add the `Advised` interface unless the AdvisedSupport's `"opaque"` flag is on. Always adds the `SpringProxy` marker interface.

      参数:
        `advised` - the proxy config
      返回:
        the complete set of interfaces to proxy
      另请参阅:
        `SpringProxy`, `Advised`

    - #### proxiedUserInterfaces

          public static Class<?>[] proxiedUserInterfaces(Object proxy)

      Extract the user-specified interfaces that the given proxy implements, i.e. all non-Advised interfaces that the proxy implements.
      参数:
        `proxy` - the proxy to analyze (usually a JDK dynamic proxy)
      返回:
        all user-specified interfaces that the proxy implements, in the original order (never `null` or empty)
      另请参阅:
        `Advised`

    - #### equalsInProxy

          public static boolean equalsInProxy(AdvisedSupport a,
                                              AdvisedSupport b)

      Check equality of the proxies behind the given AdvisedSupport objects. Not the same as equality of the AdvisedSupport objects: rather, equality of interfaces, advisors and target sources.

    - #### equalsProxiedInterfaces

          public static boolean equalsProxiedInterfaces(AdvisedSupport a,
                                                        AdvisedSupport b)

      Check equality of the proxied interfaces behind the given AdvisedSupport objects.

    - #### equalsAdvisors

          public static boolean equalsAdvisors(AdvisedSupport a,
                                               AdvisedSupport b)

      Check equality of the advisors behind the given AdvisedSupport objects.