クラス AspectJAwareAdvisorAutoProxyCreator

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

public class AspectJAwareAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCreator
AspectJ の呼び出しコンテキストを公開し、複数のアドバイスが同じアスペクトから来る場合のアドバイスの優先順位に関する AspectJ のルールを理解する AbstractAdvisorAutoProxyCreator サブクラス。
導入:
2.0
作成者:
Adrian Colyer, Juergen Hoeller, Ramnivas Laddad
関連事項:
  • コンストラクターの詳細

    • AspectJAwareAdvisorAutoProxyCreator

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

    • sortAdvisors

      protected ListSE<Advisor> sortAdvisors(ListSE<Advisor> advisors)
      提供された Advisor インスタンスを AspectJ の優先順位に従って並べ替えます。

      2 つのアドバイスが同じアスペクトからのものである場合、同じ順序になります。同じアスペクトからのアドバイスは、次の規則に従ってさらに並べ替えられます。

      • ペアのいずれかがアドバイスの後の場合、最後に宣言されたアドバイスが最も優先されます(つまり、最後に実行されます)。
      • それ以外の場合、最初に宣言されたアドバイスが最も優先されます(つまり、最初に実行されます)。

      重要 : アドバイザは、優先順位の高いものから低いものへと優先順位でソートされます。ジョインポイントへの「途中」では、最も優先度の高いアドバイザが最初に実行されます。ジョインポイントの「途中」では、最も優先度の高いアドバイザが最後に実行される必要があります。

      オーバーライド:
      クラス AbstractAdvisorAutoProxyCreatorsortAdvisors 
      パラメーター:
      advisors - アドバイザーのソースリスト
      戻り値:
      ソートされたアドバイザのリスト
      関連事項:
    • extendAdvisors

      protected void extendAdvisors(ListSE<Advisor> candidateAdvisors)
      アドバイスチェーンの先頭に ExposeInvocationInterceptor を追加します。

      この追加のアドバイスは、AspectJ ポイントカット式を使用する場合、および AspectJ スタイルのアドバイスを使用する場合に必要です。

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

      protected boolean shouldSkip(ClassSE<?> beanClass, StringSE beanName)
      クラスからコピーされた説明: AbstractAutoProxyCreator
      指定された Bean がこのポストプロセッサーによる自動プロキシと見なされない場合、サブクラスはこのメソッドをオーバーライドして true を返す必要があります。

      時々、これが起こるのを避けることができるようにする必要があります。循環参照につながる場合、または既存のターゲットインスタンスを保持する必要がある場合。この実装は、Bean 名が AutowireCapableBeanFactory の規則に従って「元のインスタンス」を示さない限り、false を返します。

      オーバーライド:
      クラス AbstractAutoProxyCreatorshouldSkip 
      パラメーター:
      beanClass - Bean のクラス
      beanName - Bean の名前
      戻り値:
      指定された Bean をスキップするかどうか
      関連事項: