Class AnnotationAwareAspectJAutoProxyCreator
- java.lang.Object
- org.springframework.aop.framework.ProxyConfig
- org.springframework.aop.framework.ProxyProcessorSupport
- org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
- org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator
- org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator
- org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator
- All Implemented Interfaces:
Serializable,AopInfrastructureBean,Aware,BeanClassLoaderAware,BeanFactoryAware,BeanPostProcessor,InstantiationAwareBeanPostProcessor,SmartInstantiationAwareBeanPostProcessor,Ordered
public class AnnotationAwareAspectJAutoProxyCreator extends AspectJAwareAdvisorAutoProxyCreator
AspectJAwareAdvisorAutoProxyCreatorsubclass that processes all AspectJ annotation aspects in the current application context, as well as Spring Advisors.Any AspectJ annotated classes will automatically be recognized, and their advice applied if Spring AOP's proxy-based model is capable of applying it. This covers method execution joinpoints.
If the <aop:include> element is used, only @AspectJ beans with names matched by an include pattern will be considered as defining aspects to use for Spring auto-proxying.
Processing of Spring Advisors follows the rules established in
AbstractAdvisorAutoProxyCreator.- Since:
- 2.0
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
AspectJAdvisorFactory, Serialized Form
Field Summary
Fields inherited from class org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
DO_NOT_PROXY, logger, PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description AnnotationAwareAspectJAutoProxyCreator()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<Advisor>findCandidateAdvisors()Find all candidate Advisors to use in auto-proxying.protected voidinitBeanFactory(ConfigurableListableBeanFactory beanFactory)protected booleanisEligibleAspectBean(String beanName)Check whether the given aspect bean is eligible for auto-proxying.protected booleanisInfrastructureClass(Class<?> beanClass)Return whether the given bean class represents an infrastructure class that should never be proxied.voidsetAspectJAdvisorFactory(AspectJAdvisorFactory aspectJAdvisorFactory)voidsetIncludePatterns(List<String> patterns)Set a list of regex patterns, matching eligible @AspectJ bean names.Methods inherited from class org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator
extendAdvisors, shouldSkip, sortAdvisors
Methods inherited from class org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator
advisorsPreFiltered, findAdvisorsThatCanApply, findEligibleAdvisors, getAdvicesAndAdvisorsForBean, isEligibleAdvisorBean, setBeanFactory
Methods inherited from class org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
buildAdvisors, createProxy, customizeProxyFactory, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessPropertyValues, predictBeanType, setAdvisorAdapterRegistry, setApplyCommonInterceptorsFirst, setCustomTargetSourceCreators, setFrozen, setInterceptorNames, shouldProxyTargetClass, wrapIfNecessary
Methods inherited from class org.springframework.aop.framework.ProxyProcessorSupport
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader
Methods inherited from class org.springframework.aop.framework.ProxyConfig
copyFrom, isExposeProxy, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setOpaque, setOptimize, setProxyTargetClass, toString
Constructor Detail
AnnotationAwareAspectJAutoProxyCreator
public AnnotationAwareAspectJAutoProxyCreator()
Method Detail
setIncludePatterns
public void setIncludePatterns(List<String> patterns)
Set a list of regex patterns, matching eligible @AspectJ bean names.Default is to consider all @AspectJ beans as eligible.
setAspectJAdvisorFactory
public void setAspectJAdvisorFactory(AspectJAdvisorFactory aspectJAdvisorFactory)
initBeanFactory
protected void initBeanFactory(ConfigurableListableBeanFactory beanFactory)
- Overrides:
initBeanFactoryin classAbstractAdvisorAutoProxyCreator
findCandidateAdvisors
protected List<Advisor> findCandidateAdvisors()
Description copied from class:AbstractAdvisorAutoProxyCreatorFind all candidate Advisors to use in auto-proxying.- Overrides:
findCandidateAdvisorsin classAbstractAdvisorAutoProxyCreator- Returns:
- the List of candidate Advisors
isInfrastructureClass
protected boolean isInfrastructureClass(Class<?> beanClass)
Description copied from class:AbstractAutoProxyCreatorReturn whether the given bean class represents an infrastructure class that should never be proxied.The default implementation considers Advices, Advisors and AopInfrastructureBeans as infrastructure classes.
- Overrides:
isInfrastructureClassin classAbstractAutoProxyCreator- Parameters:
beanClass- the class of the bean- Returns:
- whether the bean represents an infrastructure class
- See Also:
Advice,Advisor,AopInfrastructureBean,AbstractAutoProxyCreator.shouldSkip(java.lang.Class<?>, java.lang.String)
isEligibleAspectBean
protected boolean isEligibleAspectBean(String beanName)
Check whether the given aspect bean is eligible for auto-proxying.If no <aop:include> elements were used then "includePatterns" will be
nulland all beans are included. If "includePatterns" is non-null, then one of the patterns must match.