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(java.util.List<Advisor> candidateAdvisors) これまでに取得したソートされたアドバイザを前提として、サブクラスがオーバーライドして追加のアドバイザを登録できる拡張フック。 |
protected java.util.List<Advisor> | findAdvisorsThatCanApply(java.util.List<Advisor> candidateAdvisors, java.lang.Class<?> beanClass, java.lang.String beanName) 指定されたアドバイザ候補を検索して、指定された Bean に適用できるすべてのアドバイザを見つけます。 |
protected java.util.List<Advisor> | findCandidateAdvisors() 自動プロキシで使用するすべての候補アドバイザーを見つけます。 |
protected java.util.List<Advisor> | findEligibleAdvisors(java.lang.Class<?> beanClass, java.lang.String beanName) このクラスを自動プロキシするためのすべての適格なアドバイザーを見つけます。 |
protected java.lang.Object[] | getAdvicesAndAdvisorsForBean(java.lang.Class<?> beanClass, java.lang.String beanName, TargetSource targetSource) 指定された Bean をプロキシするかどうか、どのような追加のアドバイスを返すか(例: |
protected void | initBeanFactory(ConfigurableListableBeanFactory beanFactory) |
protected boolean | isEligibleAdvisorBean(java.lang.String beanName) 指定された名前のアドバイザ Bean が最初からプロキシに適格かどうかを返します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
protected java.util.List<Advisor> | sortAdvisors(java.util.List<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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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 java.lang.Object[] getAdvicesAndAdvisorsForBean(java.lang.Class<?> beanClass, java.lang.String 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 java.util.List<Advisor> findEligibleAdvisors(java.lang.Class<?> beanClass, java.lang.String beanName)
beanClass
- アドバイザーを見つけるためのクラブ beanName
- 現在プロキシされている Bean の名前 null
ではなく空のリスト findCandidateAdvisors()
, sortAdvisors(java.util.List<org.springframework.aop.Advisor>)
, extendAdvisors(java.util.List<org.springframework.aop.Advisor>)
protected java.util.List<Advisor> findCandidateAdvisors()
protected java.util.List<Advisor> findAdvisorsThatCanApply(java.util.List<Advisor> candidateAdvisors, java.lang.Class<?> beanClass, java.lang.String beanName)
candidateAdvisors
- 候補アドバイザー beanClass
- ターゲットの Bean クラス beanName
- ターゲットの Bean 名 ProxyCreationContext.getCurrentProxiedBeanName()
protected boolean isEligibleAdvisorBean(java.lang.String beanName)
beanName
- アドバイザ Bean の名前 protected java.util.List<Advisor> sortAdvisors(java.util.List<Advisor> advisors)
advisors
- アドバイザーのソースリスト Ordered
, Order
, AnnotationAwareOrderComparator
protected void extendAdvisors(java.util.List<Advisor> candidateAdvisors)
デフォルトの実装は空です。
通常、後のアドバイザーの一部が必要とするコンテキスト情報を公開するアドバイザーを追加するために使用されます。
candidateAdvisors
- 特定の Bean に適用するものとしてすでに識別されているアドバイザ protected boolean advisorsPreFiltered()
AbstractAutoProxyCreator
の advisorsPreFiltered
AbstractAutoProxyCreator.getAdvicesAndAdvisorsForBean(java.lang.Class<?>, java.lang.String, org.springframework.aop.TargetSource)
, Advised.setPreFiltered(boolean)