クラス AbstractAdvisorAutoProxyCreator

実装されたすべてのインターフェース:
SerializableSEAopInfrastructureBeanAwareBeanClassLoaderAwareBeanFactoryAwareBeanPostProcessorInstantiationAwareBeanPostProcessorSmartInstantiationAwareBeanPostProcessorOrdered
既知の直属サブクラス
AspectJAwareAdvisorAutoProxyCreatorDefaultAdvisorAutoProxyCreatorInfrastructureAdvisorAutoProxyCreator

public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyCreator
Bean ごとに検出されたアドバイザに基づいて特定の Bean の AOP プロキシを構築する汎用自動プロキシクリエーター。

サブクラスは findCandidateAdvisors() メソッドをオーバーライドして、任意のオブジェクトに適用されるアドバイザのカスタムリストを返すことができます。サブクラスは、継承された AbstractAutoProxyCreator.shouldSkip(java.lang.Class<?>, java.lang.String) メソッドをオーバーライドして、特定のオブジェクトを自動プロキシから除外することもできます。

オーダーを必要とするアドバイザーまたはアドバイスには、@Order のアノテーションを付けるか、Ordered インターフェースを実装する必要があります。このクラスは、AnnotationAwareOrderComparator を使用してアドバイザーをソートします。@Order でアノテーションが付けられていない、または Ordered インターフェースを実装していないアドバイザは、順序付けされていないと見なされます。それらは、未定義の順序でアドバイザチェーンの最後に表示されます。

作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • AbstractAdvisorAutoProxyCreator

      public AbstractAdvisorAutoProxyCreator()
  • メソッドの詳細

    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      オーバーライド:
      クラス AbstractAutoProxyCreatorsetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • initBeanFactory

      protected void initBeanFactory(ConfigurableListableBeanFactory beanFactory)
    • getAdvicesAndAdvisorsForBean

      @Nullable protected ObjectSE[] getAdvicesAndAdvisorsForBean(ClassSE<?> beanClass, StringSE beanName, @Nullable TargetSource targetSource)
      クラスからコピーされた説明: AbstractAutoProxyCreator
      指定された Bean がプロキシされるかどうか、適用する追加のアドバイス(AOP アライアンスインターセプターなど)およびアドバイザーを返します。
      次で指定:
      クラス AbstractAutoProxyCreatorgetAdvicesAndAdvisorsForBean 
      パラメーター:
      beanClass - アドバイスする Bean のクラス
      beanName - Bean の名前
      targetSource - AbstractAutoProxyCreator.getCustomTargetSource(java.lang.Class<?>, java.lang.String) メソッドによって返された TargetSource: は無視できます。カスタムターゲットソースが使用されていない場合は、null になります。
      戻り値:
      特定の Bean の追加インターセプターの配列。または追加のインターセプターではなく、一般的なインターセプターのみの場合は空の配列。または、プロキシがまったくない場合は null で、一般的なインターセプターさえ使用していません。定数 DO_NOT_PROXY および PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS を参照してください。
      関連事項:
    • findEligibleAdvisors

      protected ListSE<Advisor> findEligibleAdvisors(ClassSE<?> beanClass, StringSE beanName)
      このクラスを自動プロキシするためのすべての適格なアドバイザーを見つけます。
      パラメーター:
      beanClass - アドバイザーを見つけるためのクラブ
      beanName - 現在プロキシされている Bean の名前
      戻り値:
      ポイントカットまたはインターセプターがない場合、null ではなく空のリスト
      関連事項:
    • findCandidateAdvisors

      protected ListSE<Advisor> findCandidateAdvisors()
      自動プロキシで使用するすべての候補アドバイザーを見つけます。
      戻り値:
      候補アドバイザーのリスト
    • findAdvisorsThatCanApply

      protected ListSE<Advisor> findAdvisorsThatCanApply(ListSE<Advisor> candidateAdvisors, ClassSE<?> beanClass, StringSE beanName)
      指定されたアドバイザ候補を検索して、指定された Bean に適用できるすべてのアドバイザを見つけます。
      パラメーター:
      candidateAdvisors - 候補アドバイザー
      beanClass - ターゲットの Bean クラス
      beanName - ターゲットの Bean 名
      戻り値:
      該当するアドバイザーのリスト
      関連事項:
    • isEligibleAdvisorBean

      protected boolean isEligibleAdvisorBean(StringSE beanName)
      指定された名前のアドバイザ Bean が最初からプロキシに適格かどうかを返します。
      パラメーター:
      beanName - アドバイザ Bean の名前
      戻り値:
      Bean が適格かどうか
    • sortAdvisors

      protected ListSE<Advisor> sortAdvisors(ListSE<Advisor> advisors)
      順序付けに基づいてアドバイザーをソートします。サブクラスは、このメソッドをオーバーライドして、ソート戦略をカスタマイズすることを選択できます。
      パラメーター:
      advisors - アドバイザーのソースリスト
      戻り値:
      ソートされたアドバイザのリスト
      関連事項:
    • extendAdvisors

      protected void extendAdvisors(ListSE<Advisor> candidateAdvisors)
      これまでに取得したソートされたアドバイザを前提として、サブクラスがオーバーライドして追加のアドバイザを登録できる拡張フック。

      デフォルトの実装は空です。

      通常、後のアドバイザーの一部が必要とするコンテキスト情報を公開するアドバイザーを追加するために使用されます。

      パラメーター:
      candidateAdvisors - 特定の Bean に適用するものとしてすでに識別されているアドバイザ
    • advisorsPreFiltered

      protected boolean advisorsPreFiltered()
      この自動プロキシ作成者は常に事前にフィルタリングされたアドバイザを返します。
      オーバーライド:
      クラス AbstractAutoProxyCreatoradvisorsPreFiltered 
      戻り値:
      アドバイザが事前にフィルタリングされているかどうか
      関連事項: