## 接口的使用
org.aopalliance.intercept.MethodInterceptor

- 使用MethodInterceptor的程序包
  程序包 | 说明
  --- | ---
  org.springframework.aop | Core Spring AOP interfaces, built on AOP Alliance AOP interoperability interfaces.
  org.springframework.aop.aspectj | AspectJ integration package.
  org.springframework.aop.framework.adapter | SPI package allowing Spring AOP framework to handle arbitrary advice types.
  org.springframework.aop.interceptor | Provides miscellaneous interceptor implementations.
  org.springframework.aop.support | Convenience classes for using Spring's AOP API.

- - ### org.springframework.aop中MethodInterceptor的使用

    org.springframework.aop中MethodInterceptor的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `IntroductionInterceptor` Subinterface of AOP Alliance MethodInterceptor that allows additional interfaces to be implemented by the interceptor, and available via a proxy using that interceptor.

  - ### org.springframework.aop.aspectj中MethodInterceptor的使用

    实现MethodInterceptor的org.springframework.aop.aspectj中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AspectJAfterAdvice`
    `class` | `AspectJAfterThrowingAdvice`
    `class` | `AspectJAroundAdvice` Spring AOP around advice (MethodInterceptor) that wraps an AspectJ advice method.

  - ### org.springframework.aop.framework.adapter中MethodInterceptor的使用

    实现MethodInterceptor的org.springframework.aop.framework.adapter中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AfterReturningAdviceInterceptor`
    `class` | `MethodBeforeAdviceInterceptor` Interceptor to wrap am `MethodBeforeAdvice`.
    `class` | `ThrowsAdviceInterceptor` Interceptor to wrap an after-throwing advice.

    返回MethodInterceptor的org.springframework.aop.framework.adapter中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `MethodInterceptor` | AdvisorAdapter.`getInterceptor(Advisor advisor)` Return an AOP Alliance MethodInterceptor exposing the behavior of the given advice to an interception-based AOP framework.
    `MethodInterceptor[]` | AdvisorAdapterRegistry.`getInterceptors(Advisor advisor)` Return an array of AOP Alliance MethodInterceptors to allow use of the given Advisor in an interception-based framework.
    `MethodInterceptor[]` | DefaultAdvisorAdapterRegistry.`getInterceptors(Advisor advisor)`

  - ### org.springframework.aop.interceptor中MethodInterceptor的使用

    实现MethodInterceptor的org.springframework.aop.interceptor中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AbstractMonitoringInterceptor` Base class for monitoring interceptors, such as performance monitors.
    `class` | `AbstractTraceInterceptor` Base `MethodInterceptor` implementation for tracing.
    `class` | `AsyncExecutionInterceptor` AOP Alliance `MethodInterceptor` that processes method invocations asynchronously, using a given `AsyncTaskExecutor`.
    `class` | `ConcurrencyThrottleInterceptor` Interceptor that throttles concurrent access, blocking invocations if a specified concurrency limit is reached.
    `class` | `CustomizableTraceInterceptor` `MethodInterceptor` implementation that allows for highly customizable method-level tracing, using placeholders.
    `class` | `DebugInterceptor` AOP Alliance `MethodInterceptor` that can be introduced in a chain to display verbose information about intercepted invocations to the logger.
    `class` | `ExposeInvocationInterceptor` Interceptor that exposes the current `MethodInvocation` as a thread-local object.
    `class` | `JamonPerformanceMonitorInterceptor` Performance monitor interceptor that uses JAMon library to perform the performance measurement on the intercepted method and output the stats.
    `class` | `PerformanceMonitorInterceptor` Simple AOP Alliance `MethodInterceptor` for performance monitoring.
    `class` | `SimpleTraceInterceptor` Simple AOP Alliance `MethodInterceptor` that can be introduced in a chain to display verbose trace information about intercepted method invocations, with method entry and method exit info.

  - ### org.springframework.aop.support中MethodInterceptor的使用

    实现MethodInterceptor的org.springframework.aop.support中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `DelegatePerTargetObjectIntroductionInterceptor` Convenient implementation of the `IntroductionInterceptor` interface.
    `class` | `DelegatingIntroductionInterceptor` Convenient implementation of the `IntroductionInterceptor` interface.