## 接口的使用
org.aopalliance.aop.Advice

- 使用Advice的程序包
  程序包 | 说明
  --- | ---
  org.aopalliance.intercept | The AOP Alliance reflective interception abstraction.
  org.springframework.aop | Core Spring AOP interfaces, built on AOP Alliance AOP interoperability interfaces.
  org.springframework.aop.aspectj | AspectJ integration package.
  org.springframework.aop.aspectj.annotation | Classes enabling AspectJ 5 @Annotated classes to be used in Spring AOP.
  org.springframework.aop.framework | Package containing Spring's basic AOP infrastructure, compliant with the AOP Alliance interfaces.
  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.aopalliance.intercept中Advice的使用

    org.aopalliance.intercept中Advice的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `ConstructorInterceptor` Intercepts the construction of a new object.
    `interface` | `Interceptor`
    `interface` | `MethodInterceptor`

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

    org.springframework.aop中Advice的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `AfterAdvice`
    `interface` | `AfterReturningAdvice`
    `interface` | `BeforeAdvice`
    `interface` | `DynamicIntroductionAdvice` Subinterface of AOP Alliance Advice that allows additional interfaces to be implemented by an Advice, and available via a proxy using that interceptor.
    `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.
    `interface` | `MethodBeforeAdvice`
    `interface` | `ThrowsAdvice` Tag interface for throws advice.

    声明为Advice的org.springframework.aop中的字段
    限定符和类型 | 字段和说明
    --- | ---
    `static Advice` | Advisor.`EMPTY_ADVICE` Common placeholder for an empty `Advice` to be returned from `Advisor.getAdvice()` if no proper advice has been configured (yet).

    返回Advice的org.springframework.aop中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Advice` | Advisor.`getAdvice()` Return the advice part of this aspect.

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

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

    返回Advice的org.springframework.aop.aspectj中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Advice` | AspectJPointcutAdvisor.`getAdvice()`
    `Advice` | DeclareParentsAdvisor.`getAdvice()`

  - ### org.springframework.aop.aspectj.annotation中Advice的使用

    返回Advice的org.springframework.aop.aspectj.annotation中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Advice` | AspectJAdvisorFactory.`getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)` Build a Spring AOP Advice for the given AspectJ advice method.
    `Advice` | ReflectiveAspectJAdvisorFactory.`getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)`

  - ### org.springframework.aop.framework中Advice的使用

    参数类型为Advice的org.springframework.aop.framework中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | Advised.`addAdvice(Advice advice)` Add the given AOP Alliance advice to the tail of the advice (interceptor) chain.
    `void` | AdvisedSupport.`addAdvice(Advice advice)`
    `void` | Advised.`addAdvice(int pos, Advice advice)` Add the given AOP Alliance Advice at the specified position in the advice chain.
    `void` | AdvisedSupport.`addAdvice(int pos, Advice advice)` Cannot add introductions this way unless the advice implements IntroductionInfo.
    `boolean` | AdvisedSupport.`adviceIncluded(Advice advice)` Is the given advice included in any advisor within this proxy configuration?
    `int` | Advised.`indexOf(Advice advice)` Return the index (from 0) of the given AOP Alliance Advice, or -1 if no such advice is an advice for this proxy.
    `int` | AdvisedSupport.`indexOf(Advice advice)`
    `boolean` | Advised.`removeAdvice(Advice advice)` Remove the Advisor containing the given advice.
    `boolean` | AdvisedSupport.`removeAdvice(Advice advice)`

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

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

    参数类型为Advice的org.springframework.aop.framework.adapter中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `boolean` | AdvisorAdapter.`supportsAdvice(Advice advice)` Does this adapter understand this advice object?

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

    实现Advice的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中Advice的使用

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

    返回Advice的org.springframework.aop.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Advice` | AbstractBeanFactoryPointcutAdvisor.`getAdvice()`
    `Advice` | AbstractGenericPointcutAdvisor.`getAdvice()`
    `Advice` | DefaultIntroductionAdvisor.`getAdvice()`
    `Advice` | StaticMethodMatcherPointcutAdvisor.`getAdvice()`

    参数类型为Advice的org.springframework.aop.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | AbstractBeanFactoryPointcutAdvisor.`setAdvice(Advice advice)` Specify a particular instance of the target advice directly, avoiding lazy resolution in `AbstractBeanFactoryPointcutAdvisor.getAdvice()`.
    `void` | AbstractGenericPointcutAdvisor.`setAdvice(Advice advice)` Specify the advice that this advisor should apply.
    `void` | StaticMethodMatcherPointcutAdvisor.`setAdvice(Advice advice)`

    参数类型为Advice的org.springframework.aop.support中的构造器
    构造器和说明
    `DefaultIntroductionAdvisor(Advice advice)` Create a DefaultIntroductionAdvisor for the given advice.
    `DefaultIntroductionAdvisor(Advice advice, IntroductionInfo introductionInfo)` Create a DefaultIntroductionAdvisor for the given advice.
    `DefaultPointcutAdvisor(Advice advice)` Create a DefaultPointcutAdvisor that matches all methods.
    `DefaultPointcutAdvisor(Pointcut pointcut, Advice advice)` Create a DefaultPointcutAdvisor, specifying Pointcut and Advice.
    `NameMatchMethodPointcutAdvisor(Advice advice)`
    `RegexpMethodPointcutAdvisor(Advice advice)` Create a RegexpMethodPointcutAdvisor for the given advice.
    `RegexpMethodPointcutAdvisor(String[] patterns, Advice advice)` Create a RegexpMethodPointcutAdvisor for the given advice.
    `RegexpMethodPointcutAdvisor(String pattern, Advice advice)` Create a RegexpMethodPointcutAdvisor for the given advice.
    `StaticMethodMatcherPointcutAdvisor(Advice advice)` Create a new StaticMethodMatcherPointcutAdvisor for the given advice.