public class AspectJAwareAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCreator
AbstractAdvisorAutoProxyCreator
subclass that exposes AspectJ's invocation context and understands AspectJ's rules
for advice precedence when multiple pieces of advice come from the same aspect.DO_NOT_PROXY, logger, PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS| Constructor and Description |
|---|
AspectJAwareAdvisorAutoProxyCreator() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
extendAdvisors(List<Advisor> candidateAdvisors)
Adds an
ExposeInvocationInterceptor to the beginning of the advice chain. |
protected boolean |
shouldSkip(Class<?> beanClass,
String beanName)
Subclasses should override this method to return
true if the
given bean should not be considered for auto-proxying by this post-processor. |
protected List<Advisor> |
sortAdvisors(List<Advisor> advisors)
Sort the rest by AspectJ precedence.
|
advisorsPreFiltered, findAdvisorsThatCanApply, findCandidateAdvisors, findEligibleAdvisors, getAdvicesAndAdvisorsForBean, initBeanFactory, isEligibleAdvisorBean, setBeanFactorybuildAdvisors, createProxy, customizeProxyFactory, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, isInfrastructureClass, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessPropertyValues, predictBeanType, setAdvisorAdapterRegistry, setApplyCommonInterceptorsFirst, setCustomTargetSourceCreators, setFrozen, setInterceptorNames, shouldProxyTargetClass, wrapIfNecessaryevaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoadercopyFrom, isExposeProxy, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setOpaque, setOptimize, setProxyTargetClass, toStringprotected List<Advisor> sortAdvisors(List<Advisor> advisors)
Important: Advisors are sorted in precedence order, from highest precedence to lowest. "On the way in" to a join point, the highest precedence advisor should run first. "On the way out" of a join point, the highest precedence advisor should run last.
sortAdvisors in class AbstractAdvisorAutoProxyCreatoradvisors - the source List of AdvisorsOrdered,
Order,
AnnotationAwareOrderComparatorprotected void extendAdvisors(List<Advisor> candidateAdvisors)
ExposeInvocationInterceptor to the beginning of the advice chain.
These additional advices are needed when using AspectJ expression pointcuts
and when using AspectJ-style advice.extendAdvisors in class AbstractAdvisorAutoProxyCreatorcandidateAdvisors - Advisors that have already been identified as
applying to a given beanprotected boolean shouldSkip(Class<?> beanClass, String beanName)
AbstractAutoProxyCreatortrue if the
given bean should not be considered for auto-proxying by this post-processor.
Sometimes we need to be able to avoid this happening if it will lead to
a circular reference. This implementation returns false.
shouldSkip in class AbstractAutoProxyCreatorbeanClass - the class of the beanbeanName - the name of the bean