インターフェース SmartFactoryBean<T>
- 型パラメーター:
T- Bean 型
- すべてのスーパーインターフェース:
FactoryBean<T>
- すべての既知の実装クラス:
AbstractEntityManagerFactoryBean, LocalContainerEntityManagerFactoryBean, LocalEntityManagerFactoryBean, LocalSessionFactoryBean
FactoryBean インターフェースの拡張。実装は、false を返す FactoryBean.isSingleton() 実装が独立インスタンスであることを明確に示していない場合に備えて、常に独立インスタンスを返すかどうかを示すことができます。この拡張インターフェースを実装していないプレーンな FactoryBean 実装は、FactoryBean.isSingleton() 実装が false を返す場合、常に独立インスタンスを返すと単純に想定されます。公開されたオブジェクトは、必要に応じてのみアクセスされます。7.0 以降、このインターフェースでは、getObject(Class) メソッドと supportsType(Class) メソッドの実装を通じて、依存性注入のための追加オブジェクト型を公開できるようになりました。プライマリ FactoryBean.getObjectType() は通常のアクセスに対して公開され、特定の型がリクエストされた場合にのみ、追加の型が考慮されます。コンテナーは SmartFactoryBean および -produced オブジェクトをキャッシュしません。getObject 実装が繰り返し呼び出しに対してスレッドセーフであることを確認してください。
注意 : このインターフェースは、主にフレームワーク内およびコラボレーションフレームワーク内での内部使用のための特別な目的のインターフェースです。一般に、アプリケーションが提供する FactoryBeans は、単純な FactoryBean インターフェースを実装するだけです。ポイントリリースでも、この拡張インターフェースに新しいメソッドが追加される場合があります。
- 導入:
- 2.0.3
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
インターフェース FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTEメソッドのサマリー
修飾子と型メソッド説明default <S> @Nullable Sこのファクトリでサポートされている場合は、指定された型のインスタンスを返します。default booleanこの FactoryBean は先行初期化を期待していますか? つまり、それ自体を先行初期化すると同時に、そのシングルトンオブジェクト(存在する場合)の先行初期化を期待していますか?default booleanこのファクトリによって管理されるオブジェクトはプロトタイプですか? つまり、FactoryBean.getObject()は常に独立したインスタンスを返しますか?default booleansupportsType(ClassSE<?> type) このファクトリがリクエストされた型をサポートしているかどうかを判断します。インターフェース FactoryBean から継承されたメソッド
getObject, getObjectType, isSingleton
メソッドの詳細
getObject
このファクトリでサポートされている場合は、指定された型のインスタンスを返します。デフォルトでは、ファクトリによって公開されるプライマリ型(
FactoryBean.getObjectType()で示され、FactoryBean.getObject()によって返される)をサポートします。特定のファクトリでは、依存性注入のために追加の型をサポートする場合があります。- パラメーター:
type- リクエストされた型- 戻り値:
- このファクトリによって管理される対応するインスタンス、または利用できない場合は
null - 例外:
ExceptionSE- 作成エラーの場合- 導入:
- 7.0
- 関連事項:
supportsType
このファクトリがリクエストされた型をサポートしているかどうかを判断します。デフォルトでは、
FactoryBean.getObjectType()で示されるように、ファクトリによって公開されるプライマリ型をサポートします。特定のファクトリでは、依存性注入のために追加の型をサポートする場合があります。- パラメーター:
type- リクエストされた型- 戻り値:
-
getObject(Class)が対応するインスタンスを返すことができる場合はtrue、そうでない場合はfalse - 導入:
- 7.0
- 関連事項:
isPrototype
default boolean isPrototype()このファクトリによって管理されるオブジェクトはプロトタイプですか? つまり、FactoryBean.getObject()は常に独立したインスタンスを返しますか?FactoryBean 自体のプロトタイプステータスは、通常、所有する
BeanFactoryによって提供されます。通常は、シングルトンとして定義する必要があります。このメソッドは、独立したインスタンスを厳密にチェックすることになっています。スコープオブジェクトまたは他の種類の非シングルトン、非独立オブジェクトの
trueを返しません。このため、これは単にFactoryBean.isSingleton()の反転形式ではありません。デフォルトの実装は
falseを返します。- 戻り値:
- 公開されたオブジェクトがプロトタイプかどうか
- 関連事項:
isEagerInit
default boolean isEagerInit()この FactoryBean は先行初期化を期待していますか? つまり、それ自体を先行初期化すると同時に、そのシングルトンオブジェクト(存在する場合)の先行初期化を期待していますか?標準の FactoryBean は先行初期化されることは期待されていません。その
FactoryBean.getObject()は、シングルトンオブジェクトの場合でも、実際のアクセスのためにのみ呼び出されます。このメソッドからtrueを返すことは、FactoryBean.getObject()を積極的に呼び出し、ポストプロセッサーを積極的に適用する必要があることを提案しています。これは、singletonオブジェクトの場合、特に起動時にポストプロセッサーが適用されることを期待している場合に意味があります。デフォルトの実装は
falseを返します。- 戻り値:
- 先行初期化が適用されるかどうか
- 関連事項: