Package org.springframework.aop.aspectj.annotation

# 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`, `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanClassLoaderAware`, `org.springframework.beans.factory.BeanFactoryAware`, `org.springframework.beans.factory.config.BeanPostProcessor`, `org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor`, `org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor`, `org.springframework.beans.factory.DisposableBean`, `org.springframework.beans.factory.SmartInitializingSingleton`, `org.springframework.core.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

Modifier and Type
Method
Description
`protected List<Advisor>`
`findCandidateAdvisors()`
Find all candidate Advisors to use in auto-proxying.
`protected void`
`initBeanFactory(org.springframework.beans.factory.config.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

`afterSingletonsInstantiated, destroy, 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, determineBeanType, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, postProcessAfterInitialization, 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.BeanPostProcessor

`postProcessBeforeInitialization`

### Methods inherited from interface org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor

`postProcessAfterInstantiation`

## Constructor Details

### AnnotationAwareAspectJAutoProxyCreator

public AnnotationAwareAspectJAutoProxyCreator()

## Method Details

### 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(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)

Overrides:
  `initBeanFactory` in class `AbstractAdvisorAutoProxyCreator`

### findCandidateAdvisors

protected List<Advisor> findCandidateAdvisors()
Description copied from class: `AbstractAdvisorAutoProxyCreator`
Find all candidate Advisors to use in auto-proxying.

Overrides:
  `findCandidateAdvisors` in class `AbstractAdvisorAutoProxyCreator`
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 class `AbstractAutoProxyCreator`
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.