クラス AbstractFactoryBean<T>
- 型パラメーター:
T
- Bean 型
- 実装されたすべてのインターフェース:
Aware
、BeanClassLoaderAware
、BeanFactoryAware
、DisposableBean
、FactoryBean<T>
、InitializingBean
- 既知の直属サブクラス
AbstractServiceLoaderBasedFactoryBean
、ListFactoryBean
、MapFactoryBean
、ObjectFactoryCreatingFactoryBean
、ProviderCreatingFactoryBean
、SetFactoryBean
、SortedResourcesFactoryBean
FactoryBean
実装の単純なテンプレートスーパークラス。「シングルトン」フラグが true
(デフォルト)の場合、このクラスは、初期化時に 1 回だけ作成するオブジェクトを作成し、その後、getObject()
メソッドへのすべての呼び出しで上記のシングルトンインスタンスを返します。
そうでない場合、このクラスは getObject()
メソッドが呼び出されるたびに新しいインスタンスを作成します。サブクラスは、抽象 createInstance()
テンプレートメソッドを実装して、公開するオブジェクトを実際に作成します。
- 導入:
- 1.0.2
- 作成者:
- Juergen Hoeller, Keith Donald
- 関連事項:
フィールドサマリー
フィールドインターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTE
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
必要に応じて、シングルトンインスタンスを積極的に作成します。protected abstract T
このファクトリによって返されるオブジェクトを構築するためにサブクラスがオーバーライドする必要があるテンプレートメソッド。void
destroy()
シングルトンインスタンスを破棄します(ある場合)。protected void
destroyInstance
(T instance) シングルトンインスタンスを破棄するためのコールバック。protected BeanFactory
この Bean が実行される BeanFactory を返します。protected TypeConverter
この Bean が実行される BeanFactory から Bean 型のコンバーターを取得します。protected ClassSE<?>[]
循環参照の場合に公開される「初期シングルトンプロキシ」で使用するために、この FactoryBean によって公開されるシングルトンオブジェクトが実装することになっているインターフェースの配列を返します。final T
シングルトンインスタンスを公開するか、新しいプロトタイプインスタンスを作成します。abstract ClassSE<?>
この抽象メソッドの宣言は、FactoryBean インターフェースのメソッドを反映しており、抽象テンプレートメソッドを一貫して提供します。boolean
このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?void
setBeanClassLoader
(ClassLoaderSE classLoader) Beanclass loader
SE を Bean インスタンスに提供するコールバック。void
setBeanFactory
(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。void
setSingleton
(boolean singleton) シングルトンを作成するかどうかを設定します。それ以外の場合は、リクエストごとに新しいオブジェクトを作成します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractFactoryBean
public AbstractFactoryBean()
メソッドの詳細
setSingleton
public void setSingleton(boolean singleton) シングルトンを作成するかどうかを設定します。それ以外の場合は、リクエストごとに新しいオブジェクトを作成します。デフォルトはtrue
(シングルトン)です。isSingleton
public boolean isSingleton()インターフェースからコピーされた説明:FactoryBean
このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、
getObject()
から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true
を返さないでください。FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 :
false
を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張SmartFactoryBean
インターフェースの実装は、SmartFactoryBean.isPrototype()
メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンなFactoryBean
実装は、isSingleton()
実装がfalse
を返す場合、常に独立したインスタンスを返すと単純に想定されます。FactoryBean
は通常シングルトンインスタンスを管理するため、デフォルトの実装ではtrue
が返されます。- 次で指定:
- インターフェース
FactoryBean<T>
のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項:
setBeanClassLoader
インターフェースからコピーされた説明:BeanClassLoaderAware
Beanclass loader
SE を Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanClassLoaderAware
のsetBeanClassLoader
- パラメーター:
classLoader
- 所有クラスローダー
setBeanFactory
インターフェースからコピーされた説明:BeanFactoryAware
所有ファクトリを Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- パラメーター:
beanFactory
- 所有 BeanFactory(非null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
getBeanFactory
この Bean が実行される BeanFactory を返します。getBeanTypeConverter
この Bean が実行される BeanFactory から Bean 型コンバーターを取得します。通常、TypeConverters はスレッドセーフではないため、これは各呼び出しの新しいインスタンスです。BeanFactory で実行されていない場合、SimpleTypeConverter にフォールバックします。
afterPropertiesSet
必要に応じて、シングルトンインスタンスを積極的に作成します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- 例外:
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
getObject
シングルトンインスタンスを公開するか、新しいプロトタイプインスタンスを作成します。- 次で指定:
- インターフェース
FactoryBean<T>
のgetObject
- 戻り値:
- Bean のインスタンス (
null
にすることができます) - 例外:
ExceptionSE
- 作成エラーの場合- 関連事項:
destroy
シングルトンインスタンスを破棄します(ある場合)。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 例外:
ExceptionSE
- シャットダウンエラーの場合。例外はログに記録されますが、再スローされず、他の Bean もリソースを解放できます。- 関連事項:
getObjectType
この抽象メソッドの宣言は、FactoryBean インターフェースのメソッドを反映しており、抽象テンプレートメソッドを一貫して提供します。- 次で指定:
- インターフェース
FactoryBean<T>
のgetObjectType
- 戻り値:
- この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は
null
- 関連事項:
createInstance
このファクトリによって返されるオブジェクトを構築するためにサブクラスがオーバーライドする必要があるテンプレートメソッド。シングルトンの場合はこの FactoryBean の初期化時に呼び出され、そうでない場合は各
getObject()
コール時に呼び出されます。- 戻り値:
- このファクトリによって返されたオブジェクト
- 例外:
ExceptionSE
- オブジェクトの作成中に例外が発生した場合- 関連事項:
getEarlySingletonInterfaces
循環参照の場合に公開される「初期シングルトンプロキシ」で使用するために、この FactoryBean によって公開されるシングルトンオブジェクトが実装することになっているインターフェースの配列を返します。デフォルトの実装は、インターフェースである場合はこの FactoryBean のオブジェクト型を返し、そうでない場合は
null
を返します。後者は、初期のシングルトンアクセスがこの FactoryBean ではサポートされていないことを示しています。これにより、FactoryBeanNotInitializedException がスローされます。- 戻り値:
- 「初期のシングルトン」に使用するインターフェース、または FactoryBeanNotInitializedException を示す
null
- 関連事項:
destroyInstance
シングルトンインスタンスを破棄するためのコールバック。サブクラスはこれをオーバーライドして、以前に作成されたインスタンスを破棄する場合があります。デフォルトの実装は空です。
- パラメーター:
instance
-createInstance()
によって返されるシングルトンインスタンス- 例外:
ExceptionSE
- シャットダウンエラーの場合- 関連事項: