クラス AbstractBeanFactoryBasedTargetSourceCreator
java.lang.ObjectSE
org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
- 実装されたすべてのインターフェース:
TargetSourceCreator
、Aware
、BeanFactoryAware
、DisposableBean
- 既知の直属サブクラス
LazyInitTargetSourceCreator
,QuickTargetSourceCreator
public abstract class AbstractBeanFactoryBasedTargetSourceCreator
extends ObjectSE
implements TargetSourceCreator, BeanFactoryAware, DisposableBean
プロトタイプ Bean の複数のインスタンスを作成する必要がある
TargetSourceCreator
実装の便利なスーパークラス。内部 BeanFactory を使用してターゲットインスタンスを管理し、元の Bean 定義をこの内部ファクトリにコピーします。元の BeanFactory には自動プロキシで作成されたプロキシインスタンスのみが含まれるため、これが必要です。
AbstractBeanFactory
で実行する必要があります。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected DefaultListableBeanFactory
buildInternalBeanFactory
(ConfigurableBeanFactory containingFactory) ターゲット Bean を解決するための内部 BeanFactory をビルドします。protected abstract AbstractBeanFactoryBasedTargetSource
createBeanFactoryBasedTargetSource
(ClassSE<?> beanClass, StringSE beanName) サブクラスは、このメソッドを実装して、この Bean のカスタム TargetSource を作成する場合は新しい AbstractPrototypeBasedTargetSource を返し、関わりがない場合はnull
を返す必要があります。この場合、特別なターゲットソースは作成されません。void
destroy()
TargetSourceCreator のシャットダウン時に内部 BeanFactory を破棄します。protected final BeanFactory
この TargetSourceCreators が実行される BeanFactory を返します。protected DefaultListableBeanFactory
getInternalBeanFactoryForBean
(StringSE beanName) 指定された Bean に使用される内部 BeanFactory を返します。final TargetSource
getTargetSource
(ClassSE<?> beanClass, StringSE beanName) 指定された Bean に特別な TargetSource を作成します(存在する場合)。protected boolean
この TargetSourceCreator がプロトタイプベースかどうかを返します。final void
setBeanFactory
(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。
フィールドの詳細
logger
コンストラクターの詳細
AbstractBeanFactoryBasedTargetSourceCreator
public AbstractBeanFactoryBasedTargetSourceCreator()
メソッドの詳細
setBeanFactory
インターフェースからコピーされた説明:BeanFactoryAware
所有ファクトリを Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- パラメーター:
beanFactory
- 所有 BeanFactory(非null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
getBeanFactory
この TargetSourceCreators が実行される BeanFactory を返します。getTargetSource
インターフェースからコピーされた説明:TargetSourceCreator
指定された Bean に特別な TargetSource を作成します(存在する場合)。- 次で指定:
- インターフェース
TargetSourceCreator
のgetTargetSource
- パラメーター:
beanClass
- TargetSource を作成する Bean のクラスbeanName
- Bean の名前- 戻り値:
- この TargetSourceCreator が特定の Bean に関心がない場合は、特別な TargetSource または
null
getInternalBeanFactoryForBean
指定された Bean に使用される内部 BeanFactory を返します。- パラメーター:
beanName
- ターゲット Bean の名前- 戻り値:
- 使用する内部 BeanFactory
buildInternalBeanFactory
protected DefaultListableBeanFactory buildInternalBeanFactory(ConfigurableBeanFactory containingFactory) ターゲット Bean を解決するための内部 BeanFactory をビルドします。- パラメーター:
containingFactory
- 元々 Bean を定義している BeanFactory を含む- 戻り値:
- 一部のターゲット Bean のコピーを保持する独立した内部 BeanFactory
destroy
public void destroy()TargetSourceCreator のシャットダウン時に内部 BeanFactory を破棄します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 関連事項:
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