## Uses of Interface
org.springframework.aop.Advisor

- Packages that use Advisor
  Package | Description
  --- | ---
  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.aspectj.autoproxy | Base classes enabling auto-proxying based on AspectJ.
  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.framework.autoproxy | Bean post-processors for use in ApplicationContexts to simplify AOP usage by automatically creating AOP proxies without the need to use a ProxyFactoryBean.
  org.springframework.aop.interceptor | Provides miscellaneous interceptor implementations.
  org.springframework.aop.support | Convenience classes for using Spring's AOP API.
  org.springframework.cache.interceptor | AOP-based solution for declarative caching demarcation.
  org.springframework.cache.jcache.interceptor | AOP-based solution for declarative caching demarcation using JSR-107 annotations.
  org.springframework.dao.annotation | Annotation support for DAOs.
  org.springframework.scheduling.annotation | Annotation support for asynchronous method execution.
  org.springframework.transaction.interceptor | AOP-based solution for declarative transaction demarcation.

- - ### Uses of Advisor in org.springframework.aop

    Subinterfaces of Advisor in org.springframework.aop
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `IntroductionAdvisor` Superinterface for advisors that perform one or more AOP introductions.
    `interface` | `PointcutAdvisor` Superinterface for all Advisors that are driven by a pointcut.

  - ### Uses of Advisor in org.springframework.aop.aspectj

    Subinterfaces of Advisor in org.springframework.aop.aspectj
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `InstantiationModelAwarePointcutAdvisor` Interface to be implemented by Spring AOP Advisors wrapping AspectJ aspects that may have a lazy initialization strategy.

    Classes in org.springframework.aop.aspectj that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AspectJExpressionPointcutAdvisor` Spring AOP Advisor that can be used for any AspectJ pointcut expression.
    `class` | `AspectJPointcutAdvisor` AspectJPointcutAdvisor that adapts an `AbstractAspectJAdvice` to the `PointcutAdvisor` interface.
    `class` | `DeclareParentsAdvisor` Introduction advisor delegating to the given object.

    Methods in org.springframework.aop.aspectj with parameters of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static AspectJPrecedenceInformation` | AspectJAopUtils.`getAspectJPrecedenceInformationFor(Advisor anAdvisor)` Return the AspectJPrecedenceInformation provided by this advisor or its advice.
    `static boolean` | AspectJAopUtils.`isAfterAdvice(Advisor anAdvisor)` Return `true` if the advisor is a form of after advice.
    `static boolean` | AspectJAopUtils.`isBeforeAdvice(Advisor anAdvisor)` Return `true` if the advisor is a form of before advice.

    Method parameters in org.springframework.aop.aspectj with type arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | AspectJProxyUtils.`makeAdvisorChainAspectJCapableIfNecessary(List<Advisor> advisors)` Add special advisors if necessary to work with a proxy chain that contains AspectJ advisors: concretely, `ExposeInvocationInterceptor` at the beginning of the list.

  - ### Uses of Advisor in org.springframework.aop.aspectj.annotation

    Classes in org.springframework.aop.aspectj.annotation that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `ReflectiveAspectJAdvisorFactory.SyntheticInstantiationAdvisor` Synthetic advisor that instantiates the aspect.

    Methods in org.springframework.aop.aspectj.annotation that return Advisor
    Modifier and Type | Method and Description
    --- | ---
    `Advisor` | AspectJAdvisorFactory.`getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)` Build a Spring AOP Advisor for the given AspectJ advice method.
    `Advisor` | ReflectiveAspectJAdvisorFactory.`getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrderInAspect, String aspectName)`

    Methods in org.springframework.aop.aspectj.annotation that return types with arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `List<Advisor>` | BeanFactoryAspectJAdvisorsBuilder.`buildAspectJAdvisors()` Look for AspectJ-annotated aspect beans in the current bean factory, and return to a list of Spring AOP Advisors representing them.
    `protected List<Advisor>` | AnnotationAwareAspectJAutoProxyCreator.`findCandidateAdvisors()`
    `List<Advisor>` | AspectJAdvisorFactory.`getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)` Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.
    `List<Advisor>` | ReflectiveAspectJAdvisorFactory.`getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)`

  - ### Uses of Advisor in org.springframework.aop.aspectj.autoproxy

    Methods in org.springframework.aop.aspectj.autoproxy that return types with arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `protected List<Advisor>` | AspectJAwareAdvisorAutoProxyCreator.`sortAdvisors(List<Advisor> advisors)` Sort the supplied `Advisor` instances according to AspectJ precedence.

    Method parameters in org.springframework.aop.aspectj.autoproxy with type arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | AspectJAwareAdvisorAutoProxyCreator.`extendAdvisors(List<Advisor> candidateAdvisors)` Add an `ExposeInvocationInterceptor` to the beginning of the advice chain.
    `protected List<Advisor>` | AspectJAwareAdvisorAutoProxyCreator.`sortAdvisors(List<Advisor> advisors)` Sort the supplied `Advisor` instances according to AspectJ precedence.

  - ### Uses of Advisor in org.springframework.aop.framework

    Fields in org.springframework.aop.framework declared as Advisor
    Modifier and Type | Field and Description
    --- | ---
    `protected Advisor` | AbstractAdvisingBeanPostProcessor.`advisor`

    Methods in org.springframework.aop.framework that return Advisor
    Modifier and Type | Method and Description
    --- | ---
    `Advisor[]` | AdvisedSupport.`getAdvisors()`
    `Advisor[]` | Advised.`getAdvisors()` Return the advisors applying to this proxy.

    Methods in org.springframework.aop.framework that return types with arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `protected List<Advisor>` | AdvisedSupport.`getAdvisorsInternal()` Allows uncontrolled access to the `List` of `Advisors`.

    Methods in org.springframework.aop.framework with parameters of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `void` | AdvisedSupport.`addAdvisor(Advisor advisor)`
    `void` | Advised.`addAdvisor(Advisor advisor)` Add an advisor at the end of the advisor chain.
    `void` | AdvisedSupport.`addAdvisor(int pos, Advisor advisor)`
    `void` | Advised.`addAdvisor(int pos, Advisor advisor)` Add an Advisor at the specified position in the chain.
    `void` | AdvisedSupport.`addAdvisors(Advisor... advisors)` Add all the given advisors to this proxy configuration.
    `int` | AdvisedSupport.`indexOf(Advisor advisor)`
    `int` | Advised.`indexOf(Advisor advisor)` Return the index (from 0) of the given advisor, or -1 if no such advisor applies to this proxy.
    `boolean` | AdvisedSupport.`removeAdvisor(Advisor advisor)`
    `boolean` | Advised.`removeAdvisor(Advisor advisor)` Remove the given advisor.
    `boolean` | AdvisedSupport.`replaceAdvisor(Advisor a, Advisor b)`
    `boolean` | Advised.`replaceAdvisor(Advisor a, Advisor b)` Replace the given advisor.

    Method parameters in org.springframework.aop.framework with type arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `void` | AdvisedSupport.`addAdvisors(Collection<Advisor> advisors)` Add all the given advisors to this proxy configuration.
    `protected void` | AdvisedSupport.`copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, List<Advisor> advisors)` Copy the AOP configuration from the given `AdvisedSupport` object, but allow substitution of a fresh `TargetSource` and a given interceptor chain.

  - ### Uses of Advisor in org.springframework.aop.framework.adapter

    Methods in org.springframework.aop.framework.adapter that return Advisor
    Modifier and Type | Method and Description
    --- | ---
    `Advisor` | DefaultAdvisorAdapterRegistry.`wrap(Object adviceObject)`
    `Advisor` | AdvisorAdapterRegistry.`wrap(Object advice)` Return an `Advisor` wrapping the given advice.

    Methods in org.springframework.aop.framework.adapter with parameters of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `MethodInterceptor` | AdvisorAdapter.`getInterceptor(Advisor advisor)` Return an AOP Alliance MethodInterceptor exposing the behavior of the given advice to an interception-based AOP framework.
    `MethodInterceptor[]` | DefaultAdvisorAdapterRegistry.`getInterceptors(Advisor advisor)`
    `MethodInterceptor[]` | AdvisorAdapterRegistry.`getInterceptors(Advisor advisor)` Return an array of AOP Alliance MethodInterceptors to allow use of the given Advisor in an interception-based framework.

  - ### Uses of Advisor in org.springframework.aop.framework.autoproxy

    Methods in org.springframework.aop.framework.autoproxy that return Advisor
    Modifier and Type | Method and Description
    --- | ---
    `protected Advisor[]` | AbstractAutoProxyCreator.`buildAdvisors(String beanName, Object[] specificInterceptors)` Determine the advisors for the given bean, including the specific interceptors as well as the common interceptor, all adapted to the Advisor interface.

    Methods in org.springframework.aop.framework.autoproxy that return types with arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `List<Advisor>` | BeanFactoryAdvisorRetrievalHelper.`findAdvisorBeans()` Find all eligible Advisor beans in the current bean factory, ignoring FactoryBeans and excluding beans that are currently in creation.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> beanClass, String beanName)` Search the given candidate Advisors to find all Advisors that can apply to the specified bean.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`findCandidateAdvisors()` Find all candidate Advisors to use in auto-proxying.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`findEligibleAdvisors(Class<?> beanClass, String beanName)` Find all eligible Advisors for auto-proxying this class.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`sortAdvisors(List<Advisor> advisors)` Sort advisors based on ordering.

    Method parameters in org.springframework.aop.framework.autoproxy with type arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | AbstractAdvisorAutoProxyCreator.`extendAdvisors(List<Advisor> candidateAdvisors)` Extension hook that subclasses can override to register additional Advisors, given the sorted Advisors obtained to date.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> beanClass, String beanName)` Search the given candidate Advisors to find all Advisors that can apply to the specified bean.
    `protected List<Advisor>` | AbstractAdvisorAutoProxyCreator.`sortAdvisors(List<Advisor> advisors)` Sort advisors based on ordering.

  - ### Uses of Advisor in org.springframework.aop.interceptor

    Fields in org.springframework.aop.interceptor declared as Advisor
    Modifier and Type | Field and Description
    --- | ---
    `static Advisor` | ExposeInvocationInterceptor.`ADVISOR` Singleton advisor for this class.

    Methods in org.springframework.aop.interceptor that return Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static Advisor` | ExposeBeanNameAdvisors.`createAdvisorIntroducingNamedBean(String beanName)` Create a new advisor that will expose the given bean name, introducing the NamedBean interface to make the bean name accessible without forcing the target object to be aware of this Spring IoC concept.
    `static Advisor` | ExposeBeanNameAdvisors.`createAdvisorWithoutIntroduction(String beanName)` Create a new advisor that will expose the given bean name, with no introduction.

  - ### Uses of Advisor in org.springframework.aop.support

    Classes in org.springframework.aop.support that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractBeanFactoryPointcutAdvisor` Abstract BeanFactory-based PointcutAdvisor that allows for any Advice to be configured as reference to an Advice bean in a BeanFactory.
    `class` | `AbstractGenericPointcutAdvisor` Abstract generic `PointcutAdvisor` that allows for any `Advice` to be configured.
    `class` | `AbstractPointcutAdvisor` Abstract base class for `PointcutAdvisor` implementations.
    `class` | `DefaultBeanFactoryPointcutAdvisor` Concrete BeanFactory-based PointcutAdvisor that allows for any Advice to be configured as reference to an Advice bean in the BeanFactory, as well as the Pointcut to be configured through a bean property.
    `class` | `DefaultIntroductionAdvisor` Simple `IntroductionAdvisor` implementation that by default applies to any class.
    `class` | `DefaultPointcutAdvisor` Convenient Pointcut-driven Advisor implementation.
    `class` | `NameMatchMethodPointcutAdvisor` Convenient class for name-match method pointcuts that hold an Advice, making them an Advisor.
    `class` | `RegexpMethodPointcutAdvisor` Convenient class for regexp method pointcuts that hold an Advice, making them an `Advisor`.
    `class` | `StaticMethodMatcherPointcutAdvisor` Convenient base class for Advisors that are also static pointcuts.

    Methods in org.springframework.aop.support that return types with arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static List<Advisor>` | AopUtils.`findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> clazz)` Determine the sublist of the `candidateAdvisors` list that is applicable to the given class.

    Methods in org.springframework.aop.support with parameters of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | AopUtils.`canApply(Advisor advisor, Class<?> targetClass)` Can the given advisor apply at all on the given class? This is an important test as it can be used to optimize out an advisor for a class.
    `static boolean` | AopUtils.`canApply(Advisor advisor, Class<?> targetClass, boolean hasIntroductions)` Can the given advisor apply at all on the given class?

    Method parameters in org.springframework.aop.support with type arguments of type Advisor
    Modifier and Type | Method and Description
    --- | ---
    `static List<Advisor>` | AopUtils.`findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> clazz)` Determine the sublist of the `candidateAdvisors` list that is applicable to the given class.

  - ### Uses of Advisor in org.springframework.cache.interceptor

    Classes in org.springframework.cache.interceptor that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanFactoryCacheOperationSourceAdvisor` Advisor driven by a `CacheOperationSource`, used to include a cache advice bean for methods that are cacheable.

  - ### Uses of Advisor in org.springframework.cache.jcache.interceptor

    Classes in org.springframework.cache.jcache.interceptor that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanFactoryJCacheOperationSourceAdvisor` Advisor driven by a `JCacheOperationSource`, used to include a cache advice bean for methods that are cacheable.

  - ### Uses of Advisor in org.springframework.dao.annotation

    Classes in org.springframework.dao.annotation that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PersistenceExceptionTranslationAdvisor` Spring AOP exception translation aspect for use at Repository or DAO layer level.

  - ### Uses of Advisor in org.springframework.scheduling.annotation

    Classes in org.springframework.scheduling.annotation that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AsyncAnnotationAdvisor` Advisor that activates asynchronous method execution through the `Async` annotation.

  - ### Uses of Advisor in org.springframework.transaction.interceptor

    Classes in org.springframework.transaction.interceptor that implement Advisor
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanFactoryTransactionAttributeSourceAdvisor` Advisor driven by a `TransactionAttributeSource`, used to include a transaction advice bean for methods that are transactional.
    `class` | `TransactionAttributeSourceAdvisor` Advisor driven by a `TransactionAttributeSource`, used to include a `TransactionInterceptor` only for methods that are transactional.