Class BeanNameAutoProxyCreator
- java.lang.Object
- org.springframework.aop.framework.ProxyConfig
- org.springframework.aop.framework.ProxyProcessorSupport
- org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
- org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
- All Implemented Interfaces:
Serializable
,AopInfrastructureBean
,Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanPostProcessor
,InstantiationAwareBeanPostProcessor
,SmartInstantiationAwareBeanPostProcessor
,Ordered
public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator
Auto proxy creator that identifies beans to proxy via a list of names. Checks for direct, "xxx*", and "*xxx" matches.For configuration details, see the javadoc of the parent class AbstractAutoProxyCreator. Typically, you will specify a list of interceptor names to apply to all identified beans, via the "interceptorNames" property.
- Since:
- 10.10.2003
- Author:
- Juergen Hoeller
- See Also:
setBeanNames(java.lang.String...)
,isMatch(java.lang.String, java.lang.String)
,AbstractAutoProxyCreator.setInterceptorNames(java.lang.String...)
,AbstractAutoProxyCreator
, 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 BeanNameAutoProxyCreator()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Object[]
getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource targetSource)
Identify as bean to proxy if the bean name is in the configured list of names.protected boolean
isMatch(String beanName, String mappedName)
Return if the given bean name matches the mapped name.void
setBeanNames(String... beanNames)
Set the names of the beans that should automatically get wrapped with proxies.Methods inherited from class org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
advisorsPreFiltered, buildAdvisors, createProxy, customizeProxyFactory, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, isInfrastructureClass, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessProperties, predictBeanType, setAdvisorAdapterRegistry, setApplyCommonInterceptorsFirst, setBeanFactory, setCustomTargetSourceCreators, setFrozen, setInterceptorNames, shouldProxyTargetClass, shouldSkip, 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
BeanNameAutoProxyCreator
public BeanNameAutoProxyCreator()
Method Detail
setBeanNames
public void setBeanNames(String... beanNames)
Set the names of the beans that should automatically get wrapped with proxies. A name can specify a prefix to match by ending with "*", e.g. "myBean,tx*" will match the bean named "myBean" and all beans whose name start with "tx".NOTE: In case of a FactoryBean, only the objects created by the FactoryBean will get proxied. This default behavior applies as of Spring 2.0. If you intend to proxy a FactoryBean instance itself (a rare use case, but Spring 1.2's default behavior), specify the bean name of the FactoryBean including the factory-bean prefix "&": e.g. "&myFactoryBean".
- See Also:
FactoryBean
,BeanFactory.FACTORY_BEAN_PREFIX
getAdvicesAndAdvisorsForBean
@Nullable protected Object[] getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, @Nullable TargetSource targetSource)
Identify as bean to proxy if the bean name is in the configured list of names.- Specified by:
getAdvicesAndAdvisorsForBean
in classAbstractAutoProxyCreator
- Parameters:
beanClass
- the class of the bean to advisebeanName
- the name of the beantargetSource
- the TargetSource returned by theAbstractAutoProxyCreator.getCustomTargetSource(java.lang.Class<?>, java.lang.String)
method: may be ignored. Will benull
if no custom target source is in use.- Returns:
- an array of additional interceptors for the particular bean; or an empty array if no additional interceptors but just the common ones; or
null
if no proxy at all, not even with the common interceptors. See constants DO_NOT_PROXY and PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS. - See Also:
AbstractAutoProxyCreator.DO_NOT_PROXY
,AbstractAutoProxyCreator.PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS
isMatch
protected boolean isMatch(String beanName, String mappedName)
Return if the given bean name matches the mapped name.The default implementation checks for "xxx*", "*xxx" and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.
- Parameters:
beanName
- the bean name to checkmappedName
- the name in the configured list of names- Returns:
- if the names match
- See Also:
PatternMatchUtils.simpleMatch(String, String)