类 AbstractAdvisingBeanPostProcessor
- java.lang.Object
- org.springframework.aop.framework.ProxyConfig
- org.springframework.aop.framework.ProxyProcessorSupport
- org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
- 所有已实现的接口:
Serializable
,AopInfrastructureBean
,Aware
,BeanClassLoaderAware
,BeanPostProcessor
,Ordered
public abstract class AbstractAdvisingBeanPostProcessor extends ProxyProcessorSupport implements BeanPostProcessor
Base class forBeanPostProcessor
implementations that apply a Spring AOPAdvisor
to specific beans.- 从以下版本开始:
- 3.2
- 作者:
- Juergen Hoeller
- 另请参阅:
- 序列化表格
字段概要
字段 修饰符和类型 字段 说明 protected Advisor
advisor
protected boolean
beforeExistingAdvisors
从接口继承的字段 org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
构造器概要
构造器 构造器 说明 AbstractAdvisingBeanPostProcessor()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected void
customizeProxyFactory(ProxyFactory proxyFactory)
Subclasses may choose to implement this: for example, to change the interfaces exposed.protected boolean
isEligible(Class<?> targetClass)
Check whether the given class is eligible for advising with this post-processor'sAdvisor
.protected boolean
isEligible(Object bean, String beanName)
Check whether the given bean is eligible for advising with this post-processor'sAdvisor
.Object
postProcessAfterInitialization(Object bean, String beanName)
Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean'safterPropertiesSet
or a custom init-method).Object
postProcessBeforeInitialization(Object bean, String beanName)
Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean'safterPropertiesSet
or a custom init-method).protected ProxyFactory
prepareProxyFactory(Object bean, String beanName)
Prepare aProxyFactory
for the given bean.void
setBeforeExistingAdvisors(boolean beforeExistingAdvisors)
Set whether this post-processor's advisor is supposed to apply before existing advisors when encountering a pre-advised object.从类继承的方法 org.springframework.aop.framework.ProxyProcessorSupport
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader
从类继承的方法 org.springframework.aop.framework.ProxyConfig
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString
字段详细资料
beforeExistingAdvisors
protected boolean beforeExistingAdvisors
构造器详细资料
AbstractAdvisingBeanPostProcessor
public AbstractAdvisingBeanPostProcessor()
方法详细资料
setBeforeExistingAdvisors
public void setBeforeExistingAdvisors(boolean beforeExistingAdvisors)
Set whether this post-processor's advisor is supposed to apply before existing advisors when encountering a pre-advised object.Default is "false", applying the advisor after existing advisors, i.e. as close as possible to the target method. Switch this to "true" in order for this post-processor's advisor to wrap existing advisors as well.
Note: Check the concrete post-processor's javadoc whether it possibly changes this flag by default, depending on the nature of its advisor.
postProcessBeforeInitialization
public Object postProcessBeforeInitialization(Object bean, String beanName)
从接口复制的说明:BeanPostProcessor
Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean'safterPropertiesSet
or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.- 指定者:
postProcessBeforeInitialization
在接口中BeanPostProcessor
- 参数:
bean
- the new bean instancebeanName
- the name of the bean- 返回:
- the bean instance to use, either the original or a wrapped one; if
null
, no subsequent BeanPostProcessors will be invoked - 另请参阅:
InitializingBean.afterPropertiesSet()
postProcessAfterInitialization
public Object postProcessAfterInitialization(Object bean, String beanName)
从接口复制的说明:BeanPostProcessor
Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean'safterPropertiesSet
or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.In case of a FactoryBean, this callback will be invoked for both the FactoryBean instance and the objects created by the FactoryBean (as of Spring 2.0). The post-processor can decide whether to apply to either the FactoryBean or created objects or both through corresponding
bean instanceof FactoryBean
checks.This callback will also be invoked after a short-circuiting triggered by a
InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
method, in contrast to all other BeanPostProcessor callbacks.- 指定者:
postProcessAfterInitialization
在接口中BeanPostProcessor
- 参数:
bean
- the new bean instancebeanName
- the name of the bean- 返回:
- the bean instance to use, either the original or a wrapped one; if
null
, no subsequent BeanPostProcessors will be invoked - 另请参阅:
InitializingBean.afterPropertiesSet()
,FactoryBean
isEligible
protected boolean isEligible(Object bean, String beanName)
Check whether the given bean is eligible for advising with this post-processor'sAdvisor
.Delegates to
isEligible(Class)
for target class checking. Can be overridden e.g. to specifically exclude certain beans by name.Note: Only called for regular bean instances but not for existing proxy instances which implement
Advised
and allow for adding the localAdvisor
to the existing proxy'sAdvisor
chain. For the latter,isEligible(Class)
is being called directly, with the actual target class behind the existing proxy (as determined byAopUtils.getTargetClass(Object)
).- 参数:
bean
- the bean instancebeanName
- the name of the bean- 另请参阅:
isEligible(Class)
isEligible
protected boolean isEligible(Class<?> targetClass)
Check whether the given class is eligible for advising with this post-processor'sAdvisor
.Implements caching of
canApply
results per bean target class.- 参数:
targetClass
- the class to check against- 另请参阅:
AopUtils.canApply(Advisor, Class)
prepareProxyFactory
protected ProxyFactory prepareProxyFactory(Object bean, String beanName)
Prepare aProxyFactory
for the given bean.Subclasses may customize the handling of the target instance and in particular the exposure of the target class. The default introspection of interfaces for non-target-class proxies and the configured advisor will be applied afterwards;
customizeProxyFactory(org.springframework.aop.framework.ProxyFactory)
allows for late customizations of those parts right before proxy creation.- 参数:
bean
- the bean instance to create a proxy forbeanName
- the corresponding bean name- 返回:
- the ProxyFactory, initialized with this processor's
ProxyConfig
settings and the specified bean - 从以下版本开始:
- 4.2.3
- 另请参阅:
customizeProxyFactory(org.springframework.aop.framework.ProxyFactory)
customizeProxyFactory
protected void customizeProxyFactory(ProxyFactory proxyFactory)
Subclasses may choose to implement this: for example, to change the interfaces exposed.The default implementation is empty.
- 参数:
proxyFactory
- the ProxyFactory that is already configured with target, advisor and interfaces and will be used to create the proxy immediately after this method returns- 从以下版本开始:
- 4.2.3
- 另请参阅:
prepareProxyFactory(java.lang.Object, java.lang.String)