クラス AbstractBeanFactoryBasedTargetSourceCreator

java.lang.ObjectSE
org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
実装されたすべてのインターフェース:
TargetSourceCreatorAwareBeanFactoryAwareDisposableBean
既知の直属サブクラス
LazyInitTargetSourceCreatorQuickTargetSourceCreator

public abstract class AbstractBeanFactoryBasedTargetSourceCreator extends ObjectSE implements TargetSourceCreator, BeanFactoryAware, DisposableBean
プロトタイプ Bean の複数のインスタンスを作成する必要がある TargetSourceCreator 実装の便利なスーパークラス。

内部 BeanFactory を使用してターゲットインスタンスを管理し、元の Bean 定義をこの内部ファクトリにコピーします。元の BeanFactory には自動プロキシで作成されたプロキシインスタンスのみが含まれるため、これが必要です。

AbstractBeanFactory で実行する必要があります。

作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • フィールドの詳細

    • logger

      protected final Log logger
  • コンストラクターの詳細

    • AbstractBeanFactoryBasedTargetSourceCreator

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

    • setBeanFactory

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

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

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

      @Nullable protected final BeanFactory getBeanFactory()
      この TargetSourceCreators が実行される BeanFactory を返します。
    • getTargetSource

      @Nullable public final TargetSource getTargetSource(ClassSE<?> beanClass, StringSE beanName)
      インターフェースからコピーされた説明: TargetSourceCreator
      指定された Bean に特別な TargetSource を作成します(存在する場合)。
      次で指定:
      インターフェース TargetSourceCreatorgetTargetSource 
      パラメーター:
      beanClass - TargetSource を作成する Bean のクラス
      beanName - Bean の名前
      戻り値:
      この TargetSourceCreator が特定の Bean に関心がない場合は、特別な TargetSource または null 
    • getInternalBeanFactoryForBean

      protected DefaultListableBeanFactory getInternalBeanFactoryForBean(StringSE beanName)
      指定された Bean に使用される内部 BeanFactory を返します。
      パラメーター:
      beanName - ターゲット Bean の名前
      戻り値:
      使用する内部 BeanFactory
    • buildInternalBeanFactory

      protected DefaultListableBeanFactory buildInternalBeanFactory(ConfigurableBeanFactory containingFactory)
      ターゲット Bean を解決するための内部 BeanFactory をビルドします。
      パラメーター:
      containingFactory - 元々 Bean を定義している BeanFactory を含む
      戻り値:
      一部のターゲット Bean のコピーを保持する独立した内部 BeanFactory
    • destroy

      public void destroy()
      TargetSourceCreator のシャットダウン時に内部 BeanFactory を破棄します。
      次で指定:
      インターフェース DisposableBeandestroy 
      関連事項:
    • isPrototypeBased

      protected boolean isPrototypeBased()
      この TargetSourceCreator がプロトタイプベースかどうかを返します。ターゲット Bean 定義のスコープは、それに応じて設定されます。

      デフォルトは「true」。

      関連事項:
    • createBeanFactoryBasedTargetSource

      @Nullable protected abstract AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(ClassSE<?> beanClass, StringSE beanName)
      サブクラスは、この Bean 用のカスタム TargetSource を作成したい場合は、新しい AbstractPrototypeBasedTargetSource を返すために、このメソッドを実装する必要があり、それに関わりがない場合は null を返すためにこのメソッドを実装しなければならず、その場合は特別なターゲットソースは作成されません。サブクラスは、AbstractPrototypeBasedTargetSource 上で setTargetBeanName や setBeanFactory を呼び出すべきではありません。このクラスの getTargetSource() の実装がそれを行います。
      パラメーター:
      beanClass - TargetSource を作成する Bean のクラス
      beanName - Bean の名前
      戻り値:
      AbstractPrototypeBasedTargetSource、またはこれと一致しない場合は null