クラス AbstractAdvisingBeanPostProcessor

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

public abstract class AbstractAdvisingBeanPostProcessor extends ProxyProcessorSupport implements SmartInstantiationAwareBeanPostProcessor
Spring AOP Advisor を特定の Bean に適用する BeanPostProcessor 実装の基本クラス。
導入:
3.2
作成者:
Juergen Hoeller
関連事項:
  • フィールドの詳細

    • advisor

      @Nullable protected Advisor advisor
    • beforeExistingAdvisors

      protected boolean beforeExistingAdvisors
  • コンストラクターの詳細

    • AbstractAdvisingBeanPostProcessor

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

    • setBeforeExistingAdvisors

      public void setBeforeExistingAdvisors(boolean beforeExistingAdvisors)
      事前にアドバイスされたオブジェクトに遭遇したときに、このポストプロセッサーのアドバイザーが既存のアドバイザーの前に適用されることになっているかどうかを設定します。

      デフォルトは "false" で、既存のアドバイザーの後に、つまりターゲットメソッドに可能な限り近いところにアドバイザーを適用します。このポストプロセッサーのアドバイザーが既存のアドバイザーもラップするようにするには、これを "true" に切り替えます。

      メモ: 具体的なポストプロセッサーの javadoc をチェックして、アドバイザーの性質に応じて、デフォルトでこのフラグが変更されるかどうかを確認します。

    • determineBeanType

      public ClassSE<?> determineBeanType(ClassSE<?> beanClass, StringSE beanName)
      インターフェースからコピーされた説明: SmartInstantiationAwareBeanPostProcessor
      このプロセッサーの InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) コールバックから最終的に返される Bean の型を決定します。

      デフォルトの実装は、指定された Bean クラスをそのまま返します。特定の実装では、事前に潜在的なプロキシクラスを作成 / 初期化するために、処理手順を完全に評価する必要があります。

      次で指定:
      インターフェース SmartInstantiationAwareBeanPostProcessordetermineBeanType 
      パラメーター:
      beanClass - Bean の生のクラス
      beanName - Bean の名前
      戻り値:
      Bean の型 (非 null)
    • postProcessAfterInitialization

      public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName)
      インターフェースからコピーされた説明: BeanPostProcessor
      Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)のに、この BeanPostProcessor を新しい Bean インスタンス適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。

      FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。

      このコールバックは、他のすべての BeanPostProcessor コールバックとは異なり、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) メソッドによってトリガーされた短絡後にも呼び出されます。

      デフォルトの実装は、指定された bean をそのまま返します。

      次で指定:
      インターフェース BeanPostProcessorpostProcessAfterInitialization 
      パラメーター:
      bean - 新しい Bean インスタンス
      beanName - Bean の名前
      戻り値:
      使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。null の場合、後続の BeanPostProcessors は呼び出されません
      関連事項:
    • isEligible

      protected boolean isEligible(ObjectSE bean, StringSE beanName)
      指定された Bean が、このポストプロセッサーの Advisor でアドバイスする資格があるかどうかを確認します。

      ターゲットクラスチェックのための isEligible(Class) へのデリゲート。オーバーライドできます。特定の Bean を名前で明確に除外します。

      メモ: 通常の Bean インスタンスに対してのみ呼び出されますが、Advised を実装し、ローカル Advisor を既存のプロキシの Advisor チェーンに追加できる既存のプロキシインスタンスに対しては呼び出されません。後者の場合、isEligible(Class) は直接呼び出され、実際のターゲットクラスは既存のプロキシの背後にあります(AopUtils.getTargetClass(Object) によって決定されます)。

      パラメーター:
      bean - Bean インスタンス
      beanName - Bean の名前
      関連事項:
    • isEligible

      protected boolean isEligible(ClassSE<?> targetClass)
      指定されたクラスが、このポストプロセッサーの Advisor でアドバイスする資格があるかどうかを確認します。

      Bean ターゲットクラスごとに canApply 結果のキャッシュを実装します。

      パラメーター:
      targetClass - チェックするクラス
      関連事項:
    • prepareProxyFactory

      protected ProxyFactory prepareProxyFactory(ObjectSE bean, StringSE beanName)
      指定された Bean の ProxyFactory を準備します。

      サブクラスは、ターゲットインスタンスの処理、特にターゲットクラスの公開をカスタマイズできます。非ターゲットクラスのプロキシと構成済みのアドバイザーのインターフェースのデフォルトのイントロスペクションは後で適用されます。customizeProxyFactory(org.springframework.aop.framework.ProxyFactory) では、プロキシを作成する直前に、これらのパーツを後でカスタマイズすることができます。

      パラメーター:
      bean - プロキシを作成する Bean インスタンス
      beanName - 対応する Bean 名
      戻り値:
      このプロセッサーの ProxyConfig 設定と指定された Bean で初期化された ProxyFactory
      導入:
      4.2.3
      関連事項:
    • customizeProxyFactory

      protected void customizeProxyFactory(ProxyFactory proxyFactory)
      サブクラスは、これを実装することを選択できます。たとえば、公開されているインターフェースを変更するためです。

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

      パラメーター:
      proxyFactory - ターゲット、アドバイザー、インターフェースですでに構成されており、このメソッドが戻った直後にプロキシを作成するために使用される ProxyFactory
      導入:
      4.2.3
      関連事項: