|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.aop.framework.ProxyConfig org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator
public abstract class AbstractAdvisorAutoProxyCreator
Generic auto proxy creator that builds AOP proxies for specific beans based on detected Advisors for each bean.
Subclasses must implement the abstract findCandidateAdvisors()
method to return a list of Advisors applying to any object. Subclasses can
also override the inherited AbstractAutoProxyCreator.shouldSkip(java.lang.Class, java.lang.String)
method to exclude certain
objects from auto-proxying.
Advisors or advices requiring ordering should implement the
Ordered
interface. This class sorts
Advisors by Ordered order value. Advisors that don't implement the
Ordered interface will be considered as unordered; they will appear
at the end of the advisor chain in undefined order.
findCandidateAdvisors()
,
Serialized FormField 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 | |
---|---|
AbstractAdvisorAutoProxyCreator()
|
Method Summary | |
---|---|
protected void |
extendAdvisors(List candidateAdvisors)
Extension hook that subclasses can override to register additional Advisors, given the sorted Advisors obtained to date. |
protected List |
findCandidateAdvisors()
Find all candidate advisors to use in auto-proxying. |
protected List |
findEligibleAdvisors(Class clazz)
Find all eligible advices for auto-proxying this class. |
protected Object[] |
getAdvicesAndAdvisorsForBean(Class beanClass,
String name,
TargetSource targetSource)
Return whether the given bean is to be proxied, what additional advices (e.g. |
protected void |
initBeanFactory(ConfigurableListableBeanFactory beanFactory)
|
protected boolean |
isEligibleAdvisorBean(String beanName)
Return whether the Advisor bean with the given name is eligible for proxying in the first place. |
void |
setBeanFactory(BeanFactory beanFactory)
Callback that supplies the owning factory to a bean instance. |
protected List |
sortAdvisors(List advisors)
Sort advisors based on ordering. |
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 |
Constructor Detail |
---|
public AbstractAdvisorAutoProxyCreator()
Method Detail |
---|
public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware
Invoked after the population of normal bean properties
but before an initialization callback such as
InitializingBean.afterPropertiesSet()
or a custom init-method.
setBeanFactory
in interface BeanFactoryAware
setBeanFactory
in class AbstractAutoProxyCreator
beanFactory
- owning BeanFactory (never null
).
The bean can immediately call methods on the factory.BeanInitializationException
protected void initBeanFactory(ConfigurableListableBeanFactory beanFactory)
protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String name, TargetSource targetSource)
AbstractAutoProxyCreator
getAdvicesAndAdvisorsForBean
in class AbstractAutoProxyCreator
beanClass
- the class of the bean to advisename
- the name of the beantargetSource
- the TargetSource returned by the
AbstractAutoProxyCreator.getCustomTargetSource(java.lang.Class, java.lang.String)
method: may be ignored.
Will be null
if no custom target source is in use.
null
if no proxy at all, not even with the common interceptors.
See constants DO_NOT_PROXY and PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS.AbstractAutoProxyCreator.DO_NOT_PROXY
,
AbstractAutoProxyCreator.PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS
protected List findEligibleAdvisors(Class clazz)
clazz
- the clazz to find advisors for
null
,
if there are no pointcuts or interceptorsfindCandidateAdvisors()
,
sortAdvisors(java.util.List)
,
extendAdvisors(java.util.List)
protected List findCandidateAdvisors()
protected boolean isEligibleAdvisorBean(String beanName)
beanName
- the name of the Advisor bean
protected List sortAdvisors(List advisors)
advisors
- the source List of Advisors
Ordered
,
OrderComparator
protected void extendAdvisors(List candidateAdvisors)
The default implementation is empty.
Typically used to add Advisors that expose contextual information required by some of the later advisors.
candidateAdvisors
- Advisors that have already been identified as
applying to a given bean
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |