public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyCreator
Subclasses may override the findCandidateAdvisors() method to
 return a custom list of Advisors applying to any object. Subclasses can
 also override the inherited AbstractAutoProxyCreator.shouldSkip(java.lang.Class<?>, java.lang.String) method to exclude certain
 objects from auto-proxying.
 
Advisors or advices requiring ordering should implement the
 Ordered interface. This class sorts
 Advisors by Ordered order value. Advisors that don't implement the
 Ordered interface will be considered as unordered; they will appear
 at the end of the advisor chain in undefined order.
findCandidateAdvisors(), 
Serialized FormDO_NOT_PROXY, logger, PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS| Constructor and Description | 
|---|
| AbstractAdvisorAutoProxyCreator() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected boolean | advisorsPreFiltered()This auto-proxy creator always returns pre-filtered Advisors. | 
| protected void | extendAdvisors(List<Advisor> candidateAdvisors)Extension hook that subclasses can override to register additional Advisors,
 given the sorted Advisors obtained to date. | 
| protected List<Advisor> | 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> | findCandidateAdvisors()Find all candidate Advisors to use in auto-proxying. | 
| protected List<Advisor> | findEligibleAdvisors(Class<?> beanClass,
                    String beanName)Find all eligible Advisors for auto-proxying this class. | 
| protected Object[] | getAdvicesAndAdvisorsForBean(Class<?> beanClass,
                            String beanName,
                            TargetSource targetSource)Return whether the given bean is to be proxied, what additional
 advices (e.g. | 
| protected void | initBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) | 
| protected boolean | isEligibleAdvisorBean(String beanName)Return whether the Advisor bean with the given name is eligible
 for proxying in the first place. | 
| void | setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) | 
| protected List<Advisor> | sortAdvisors(List<Advisor> advisors)Sort advisors based on ordering. | 
buildAdvisors, createProxy, customizeProxyFactory, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, isInfrastructureClass, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessProperties, predictBeanType, setAdvisorAdapterRegistry, setApplyCommonInterceptorsFirst, setCustomTargetSourceCreators, setFrozen, setInterceptorNames, shouldProxyTargetClass, shouldSkip, wrapIfNecessaryevaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoadercopyFrom, isExposeProxy, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setOpaque, setOptimize, setProxyTargetClass, toStringpublic void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAwaresetBeanFactory in class AbstractAutoProxyCreatorprotected void initBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
@Nullable protected Object[] getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, @Nullable TargetSource targetSource)
AbstractAutoProxyCreatorgetAdvicesAndAdvisorsForBean in class AbstractAutoProxyCreatorbeanClass - the class of the bean to advisebeanName - the name of the beantargetSource - the TargetSource returned by the
 AbstractAutoProxyCreator.getCustomTargetSource(java.lang.Class<?>, java.lang.String) method: may be ignored.
 Will be null if no custom target source is in use.null if no proxy at all, not even with the common interceptors.
 See constants DO_NOT_PROXY and PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS.AbstractAutoProxyCreator.DO_NOT_PROXY, 
AbstractAutoProxyCreator.PROXY_WITHOUT_ADDITIONAL_INTERCEPTORSprotected List<Advisor> findEligibleAdvisors(Class<?> beanClass, String beanName)
beanClass - the clazz to find advisors forbeanName - the name of the currently proxied beannull,
 if there are no pointcuts or interceptorsfindCandidateAdvisors(), 
sortAdvisors(java.util.List<org.springframework.aop.Advisor>), 
extendAdvisors(java.util.List<org.springframework.aop.Advisor>)protected List<Advisor> findCandidateAdvisors()
protected List<Advisor> findAdvisorsThatCanApply(List<Advisor> candidateAdvisors, Class<?> beanClass, String beanName)
candidateAdvisors - the candidate AdvisorsbeanClass - the target's bean classbeanName - the target's bean nameProxyCreationContext.getCurrentProxiedBeanName()protected boolean isEligibleAdvisorBean(String beanName)
beanName - the name of the Advisor beanprotected List<Advisor> sortAdvisors(List<Advisor> advisors)
advisors - the source List of AdvisorsOrdered, 
Order, 
AnnotationAwareOrderComparatorprotected void extendAdvisors(List<Advisor> candidateAdvisors)
The default implementation is empty.
Typically used to add Advisors that expose contextual information required by some of the later advisors.
candidateAdvisors - the Advisors that have already been identified as
 applying to a given beanprotected boolean advisorsPreFiltered()
advisorsPreFiltered in class AbstractAutoProxyCreatorAbstractAutoProxyCreator.getAdvicesAndAdvisorsForBean(java.lang.Class<?>, java.lang.String, org.springframework.aop.TargetSource), 
Advised.setPreFiltered(boolean)