public abstract class AbstractBeanFactoryBasedTargetSourceCreator extends ObjectSE implements TargetSourceCreator, BeanFactoryAware, DisposableBean
TargetSourceCreator
実装の便利なスーパークラス。内部 BeanFactory を使用してターゲットインスタンスを管理し、元の Bean 定義をこの内部ファクトリにコピーします。元の BeanFactory には自動プロキシで作成されたプロキシインスタンスのみが含まれるため、これが必要です。
AbstractBeanFactory
で実行する必要があります。
AbstractBeanFactoryBasedTargetSource
, AbstractBeanFactory
コンストラクターと説明 |
---|
AbstractBeanFactoryBasedTargetSourceCreator() |
修飾子と型 | メソッドと説明 |
---|---|
protected DefaultListableBeanFactory | buildInternalBeanFactory(ConfigurableBeanFactory containingFactory) ターゲット Bean を解決するための内部 BeanFactory をビルドします。 |
protected abstract AbstractBeanFactoryBasedTargetSource | createBeanFactoryBasedTargetSource(ClassSE<?> beanClass, StringSE beanName) サブクラスは、このメソッドを実装して、この Bean のカスタム TargetSource を作成する場合は新しい AbstractPrototypeBasedTargetSource を返し、関わりがない場合は null を返す必要があります。この場合、特別なターゲットソースは作成されません。 |
void | destroy() TargetSourceCreator のシャットダウン時に内部 BeanFactory を破棄します。 |
protected BeanFactory | getBeanFactory() この TargetSourceCreators が実行される BeanFactory を返します。 |
protected DefaultListableBeanFactory | getInternalBeanFactoryForBean(StringSE beanName) 指定された Bean に使用される内部 BeanFactory を返します。 |
TargetSource | getTargetSource(ClassSE<?> beanClass, StringSE beanName) 指定された Bean に特別な TargetSource を作成します(存在する場合)。 |
protected boolean | isPrototypeBased() この TargetSourceCreator がプロトタイプベースかどうかを返します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final Log logger
public AbstractBeanFactoryBasedTargetSourceCreator()
public final void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware
の setBeanFactory
beanFactory
- 所有 BeanFactory(非 null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
protected final BeanFactory getBeanFactory()
@Nullable public final TargetSource getTargetSource(ClassSE<?> beanClass, StringSE beanName)
TargetSourceCreator
TargetSourceCreator
の getTargetSource
beanClass
- TargetSource を作成する Bean のクラス beanName
- Bean の名前 null
protected DefaultListableBeanFactory getInternalBeanFactoryForBean(StringSE beanName)
beanName
- ターゲット Bean の名前 protected DefaultListableBeanFactory buildInternalBeanFactory(ConfigurableBeanFactory containingFactory)
containingFactory
- 元々 Bean を定義している BeanFactory を含む public void destroy()
DisposableBean
の destroy
getInternalBeanFactoryForBean(java.lang.String)
protected boolean isPrototypeBased()
デフォルトは「true」。
@Nullable protected abstract AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(ClassSE<?> beanClass, StringSE beanName)
null
を返すためにこのメソッドを実装しなければならず、その場合は特別なターゲットソースは作成されません。サブクラスは、AbstractPrototypeBasedTargetSource 上で setTargetBeanName
や setBeanFactory
を呼び出すべきではありません。このクラスの getTargetSource()
の実装がそれを行います。beanClass
- TargetSource を作成する Bean のクラス beanName
- Bean の名前 null