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
AspectJAwareAdvisorAutoProxyCreator
subclass 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 void
initBeanFactory(ConfigurableListableBeanFactory beanFactory)
protected boolean
isEligibleAspectBean(String beanName)
Check whether the given aspect bean is eligible for auto-proxying.protected boolean
isInfrastructureClass(Class<?> beanClass)
Return whether the given bean class represents an infrastructure class that should never be proxied.void
setAspectJAdvisorFactory(AspectJAdvisorFactory aspectJAdvisorFactory)
void
setIncludePatterns(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, postProcessProperties, 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor
postProcessPropertyValues
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:
initBeanFactory
in classAbstractAdvisorAutoProxyCreator
findCandidateAdvisors
protected List<Advisor> findCandidateAdvisors()
Description copied from class:AbstractAdvisorAutoProxyCreator
Find all candidate Advisors to use in auto-proxying.- Overrides:
findCandidateAdvisors
in classAbstractAdvisorAutoProxyCreator
- Returns:
- the List of candidate Advisors
isInfrastructureClass
protected boolean isInfrastructureClass(Class<?> beanClass)
Description copied from class:AbstractAutoProxyCreator
Return 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:
isInfrastructureClass
in 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
null
and all beans are included. If "includePatterns" is non-null, then one of the patterns must match.