org.springframework.aop.support

## 类 DelegatingIntroductionInterceptor

- java.lang.Object
- - org.springframework.aop.support.IntroductionInfoSupport
  - - org.springframework.aop.support.DelegatingIntroductionInterceptor

- 所有已实现的接口:
    Serializable, Advice, Interceptor, MethodInterceptor, DynamicIntroductionAdvice, IntroductionInfo, IntroductionInterceptor

      public class DelegatingIntroductionInterceptor
      extends IntroductionInfoSupport
      implements IntroductionInterceptor

  Convenient implementation of the `IntroductionInterceptor` interface.

  Subclasses merely need to extend this class and implement the interfaces to be introduced themselves. In this case the delegate is the subclass instance itself. Alternatively a separate delegate may implement the interface, and be set via the delegate bean property.

  Delegates or subclasses may implement any number of interfaces. All interfaces except IntroductionInterceptor are picked up from the subclass or delegate by default.

  The `suppressInterface` method can be used to suppress interfaces implemented by the delegate but which should not be introduced to the owning AOP proxy.

  An instance of this class is serializable if the delegate is.

  从以下版本开始:
    16.11.2003
  作者:
    Rod Johnson, Juergen Hoeller
  另请参阅:
    `IntroductionInfoSupport.suppressInterface(java.lang.Class<?>)`, `DelegatePerTargetObjectIntroductionInterceptor`, 序列化表格

- - ### 字段概要

    - ### 从类继承的字段 org.springframework.aop.support.IntroductionInfoSupport

      `publishedInterfaces`

  - ### 构造器概要

    构造器
    限定符 | 构造器和说明
    --- | ---
    `protected` | `DelegatingIntroductionInterceptor()` Construct a new DelegatingIntroductionInterceptor.
    `` | `DelegatingIntroductionInterceptor(Object delegate)` Construct a new DelegatingIntroductionInterceptor, providing a delegate that implements the interfaces to be introduced.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected Object` | `doProceed(MethodInvocation mi)` Proceed with the supplied `MethodInterceptor`.
    `Object` | `invoke(MethodInvocation mi)` Subclasses may need to override this if they want to perform custom behaviour in around advice.

    - ### 从类继承的方法 org.springframework.aop.support.IntroductionInfoSupport

      `getInterfaces, implementInterfacesOnObject, implementsInterface, isMethodOnIntroducedInterface, suppressInterface`

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

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

    - ### 从接口继承的方法 org.springframework.aop.DynamicIntroductionAdvice

      `implementsInterface`

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

    - #### DelegatingIntroductionInterceptor

          public DelegatingIntroductionInterceptor(Object delegate)

      Construct a new DelegatingIntroductionInterceptor, providing a delegate that implements the interfaces to be introduced.
      参数:
        `delegate` - the delegate that implements the introduced interfaces

    - #### DelegatingIntroductionInterceptor

          protected DelegatingIntroductionInterceptor()

      Construct a new DelegatingIntroductionInterceptor. The delegate will be the subclass, which must implement additional interfaces.

  - ### 方法详细资料

    - #### invoke

          @Nullable
          public Object invoke(MethodInvocation mi)
                                   throws Throwable

      Subclasses may need to override this if they want to perform custom behaviour in around advice. However, subclasses should invoke this method, which handles introduced interfaces and forwarding to the target.
      指定者:
        `invoke` 在接口中 `MethodInterceptor`
      参数:
        `mi` - 主要实现类:ReflectiveMethodInvocation
      抛出:
        `Throwable`

    - #### doProceed

          protected Object doProceed(MethodInvocation mi)
                              throws Throwable

      Proceed with the supplied `MethodInterceptor`. Subclasses can override this method to intercept method invocations on the target object which is useful when an introduction needs to monitor the object that it is introduced into. This method is never called for `MethodInvocations` on the introduced interfaces.
      抛出:
        `Throwable`