public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyCreator
サブクラスは findCandidateAdvisors()
メソッドをオーバーライドして、任意のオブジェクトに適用されるアドバイザのカスタムリストを返すことができます。サブクラスは、継承された AbstractAutoProxyCreator.shouldSkip(java.lang.Class<?>, java.lang.String)
メソッドをオーバーライドして、特定のオブジェクトを自動プロキシから除外することもできます。
オーダーを必要とするアドバイザーまたはアドバイスは、Ordered
インターフェースを実装する必要があります。このクラスは、Advisor を Ordered オーダー値でソートします。Ordered インターフェースを実装しないアドバイザは、順序付けされていないと見なされます。それらは、未定義の順序でアドバイザチェーンの最後に表示されます。
findCandidateAdvisors()
, 直列化された形式 DO_NOT_PROXY, logger, PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターと説明 |
---|
AbstractAdvisorAutoProxyCreator() |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | advisorsPreFiltered() この自動プロキシ作成者は常に事前にフィルタリングされたアドバイザを返します。 |
protected void | extendAdvisors(ListSE<Advisor> candidateAdvisors) これまでに取得したソートされたアドバイザを前提として、サブクラスがオーバーライドして追加のアドバイザを登録できる拡張フック。 |
protected ListSE<Advisor> | findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> beanClass, StringSE beanName) 指定されたアドバイザ候補を検索して、指定された Bean に適用できるすべてのアドバイザを見つけます。 |
protected ListSE<Advisor> | findCandidateAdvisors() 自動プロキシで使用するすべての候補アドバイザーを見つけます。 |
protected ListSE<Advisor> | findEligibleAdvisors(ClassSE<?> beanClass, StringSE beanName) このクラスを自動プロキシするためのすべての適格なアドバイザーを見つけます。 |
protected ObjectSE[] | getAdvicesAndAdvisorsForBean(ClassSE<?> beanClass, StringSE beanName, TargetSource targetSource) 指定された Bean をプロキシするかどうか、どのような追加のアドバイスを返すか(例: |
protected void | initBeanFactory(ConfigurableListableBeanFactory beanFactory) |
protected boolean | isEligibleAdvisorBean(StringSE beanName) 指定された名前のアドバイザ Bean が最初からプロキシに適格かどうかを返します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
protected ListSE<Advisor> | sortAdvisors(ListSE<Advisor> advisors) 順序付けに基づいてアドバイザーをソートします。 |
buildAdvisors, createProxy, customizeProxyFactory, determineCandidateConstructors, getBeanFactory, getCacheKey, getCustomTargetSource, getEarlyBeanReference, isFrozen, isInfrastructureClass, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessProperties, predictBeanType, setAdvisorAdapterRegistry, setApplyCommonInterceptorsFirst, setCustomTargetSourceCreators, setFrozen, setInterceptorNames, shouldProxyTargetClass, shouldSkip, wrapIfNecessary
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader
copyFrom, isExposeProxy, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setOpaque, setOptimize, setProxyTargetClass, toString
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
postProcessPropertyValues
public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware
の setBeanFactory
AbstractAutoProxyCreator
の setBeanFactory
beanFactory
- 所有 BeanFactory(非 null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
protected void initBeanFactory(ConfigurableListableBeanFactory beanFactory)
@Nullable protected ObjectSE[] getAdvicesAndAdvisorsForBean(ClassSE<?> beanClass, StringSE beanName, @Nullable TargetSource targetSource)
AbstractAutoProxyCreator
AbstractAutoProxyCreator
の getAdvicesAndAdvisorsForBean
beanClass
- アドバイスする Bean のクラス beanName
- Bean の名前 targetSource
- AbstractAutoProxyCreator.getCustomTargetSource(java.lang.Class<?>, java.lang.String)
メソッドによって返された TargetSource: は無視できます。カスタムターゲットソースが使用されていない場合は、null
になります。null
で、一般的なインターセプターさえ使用していません。定数 DO_NOT_PROXY および PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS を参照してください。AbstractAutoProxyCreator.DO_NOT_PROXY
, AbstractAutoProxyCreator.PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS
protected ListSE<Advisor> findEligibleAdvisors(ClassSE<?> beanClass, StringSE beanName)
beanClass
- アドバイザーを見つけるためのクラブ beanName
- 現在プロキシされている Bean の名前 null
ではなく空のリスト findCandidateAdvisors()
, sortAdvisors(java.util.List<org.springframework.aop.Advisor>)
, extendAdvisors(java.util.List<org.springframework.aop.Advisor>)
protected ListSE<Advisor> findCandidateAdvisors()
protected ListSE<Advisor> findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> beanClass, StringSE beanName)
candidateAdvisors
- 候補アドバイザー beanClass
- ターゲットの Bean クラス beanName
- ターゲットの Bean 名 ProxyCreationContext.getCurrentProxiedBeanName()
protected boolean isEligibleAdvisorBean(StringSE beanName)
beanName
- アドバイザ Bean の名前 protected ListSE<Advisor> sortAdvisors(ListSE<Advisor> advisors)
advisors
- アドバイザーのソースリスト Ordered
, Order
, AnnotationAwareOrderComparator
protected void extendAdvisors(ListSE<Advisor> candidateAdvisors)
デフォルトの実装は空です。
通常、後のアドバイザーの一部が必要とするコンテキスト情報を公開するアドバイザーを追加するために使用されます。
candidateAdvisors
- 特定の Bean に適用するものとしてすでに識別されているアドバイザ protected boolean advisorsPreFiltered()
AbstractAutoProxyCreator
の advisorsPreFiltered
AbstractAutoProxyCreator.getAdvicesAndAdvisorsForBean(java.lang.Class<?>, java.lang.String, org.springframework.aop.TargetSource)
, Advised.setPreFiltered(boolean)