类 AbstractAdvisingBeanPostProcessor
- 所有已实现的接口:
AopInfrastructureBean,infra.beans.factory.Aware,infra.beans.factory.BeanClassLoaderAware,infra.beans.factory.config.BeanPostProcessor,infra.beans.factory.config.InstantiationAwareBeanPostProcessor,infra.beans.factory.config.SmartInstantiationAwareBeanPostProcessor,infra.beans.factory.InitializationBeanPostProcessor,infra.core.Ordered,Serializable
BeanPostProcessor implementations that apply a
AOP Advisor to specific beans.- 从以下版本开始:
- 4.0
- 作者:
- Juergen Hoeller, Harry Yang
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明protected Advisorprotected booleanprivate final ConcurrentHashMap<Class<?>,Boolean> private static final long从类继承的字段 infra.aop.framework.ProxyConfig
exposeProxy, opaque从接口继承的字段 infra.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected voidcustomizeProxyFactory(ProxyFactory proxyFactory) Subclasses may choose to implement this: for example, to change the interfaces exposed.Class<?>determineBeanType(Class<?> beanClass, String beanName) protected booleanisEligible(Class<?> targetClass) Check whether the given class is eligible for advising with this post-processor'sAdvisor.protected booleanisEligible(Object bean, String beanName) Check whether the given bean is eligible for advising with this post-processor'sAdvisor.postProcessAfterInitialization(Object bean, String beanName) protected ProxyFactoryprepareProxyFactory(Object bean, String beanName) Prepare aProxyFactoryfor the given bean.voidsetBeforeExistingAdvisors(boolean beforeExistingAdvisors) Set whether this post-processor's advisor is supposed to apply before existing advisors when encountering a pre-advised object.从类继承的方法 infra.aop.framework.ProxyProcessorSupport
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader从类继承的方法 infra.aop.framework.ProxyConfig
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait从接口继承的方法 infra.beans.factory.InitializationBeanPostProcessor
postProcessBeforeInitialization从接口继承的方法 infra.beans.factory.config.InstantiationAwareBeanPostProcessor
postProcessAfterInstantiation, postProcessBeforeInstantiation从接口继承的方法 infra.beans.factory.config.SmartInstantiationAwareBeanPostProcessor
determineCandidateConstructors, getEarlyBeanReference, predictBeanType
-
字段详细资料
-
serialVersionUID
private static final long serialVersionUID- 另请参阅:
-
advisor
-
beforeExistingAdvisors
protected boolean beforeExistingAdvisors -
eligibleBeans
-
-
构造器详细资料
-
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.
-
determineBeanType
- 指定者:
determineBeanType在接口中infra.beans.factory.config.SmartInstantiationAwareBeanPostProcessor
-
postProcessAfterInitialization
- 指定者:
postProcessAfterInitialization在接口中infra.beans.factory.InitializationBeanPostProcessor
-
isEligible
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
Advisedand allow for adding the localAdvisorto the existing proxy'sAdvisorchain. 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
Check whether the given class is eligible for advising with this post-processor'sAdvisor.Implements caching of
canApplyresults per bean target class.- 参数:
targetClass- the class to check against- 另请参阅:
-
prepareProxyFactory
Prepare aProxyFactoryfor 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(infra.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
ProxyConfigsettings and the specified bean - 另请参阅:
-
customizeProxyFactory
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- 另请参阅:
-