T
- Bean 型 public interface SmartFactoryBean<T> extends FactoryBean<T>
FactoryBean
インターフェースの拡張。false
を返す FactoryBean.isSingleton()
実装が独立したインスタンスを明確に示さない場合のために、実装は常に独立したインスタンスを返すかどうかを示す場合があります。 この拡張インターフェースを実装しないプレーンな FactoryBean
実装は、FactoryBean.isSingleton()
実装が false
を返す場合、常に独立したインスタンスを返すと単純に想定されています。公開されたオブジェクトは、オンデマンドでのみアクセスされます。
注意 : このインターフェースは、主にフレームワーク内およびコラボレーションフレームワーク内での内部使用のための特別な目的のインターフェースです。一般に、アプリケーションが提供する FactoryBeans は、単純な FactoryBean
インターフェースを実装するだけです。ポイントリリースでも、この拡張インターフェースに新しいメソッドが追加される場合があります。
isPrototype()
, FactoryBean.isSingleton()
修飾子と型 | メソッドと説明 |
---|---|
default boolean | isEagerInit() この FactoryBean は先行初期化を期待していますか? つまり、それ自体を先行初期化すると同時に、そのシングルトンオブジェクト(存在する場合)の先行初期化を期待していますか? |
default boolean | isPrototype() このファクトリによって管理されるオブジェクトはプロトタイプですか? つまり、 FactoryBean.getObject() は常に独立したインスタンスを返しますか? |
getObject, getObjectType, isSingleton
default boolean isPrototype()
FactoryBean.getObject()
は常に独立したインスタンスを返しますか? FactoryBean 自体のプロトタイプステータスは、通常、所有する BeanFactory
によって提供されます。通常は、シングルトンとして定義する必要があります。
このメソッドは、独立したインスタンスを厳密にチェックすることになっています。スコープオブジェクトまたは他の種類の非シングルトン、非独立オブジェクトの true
を返しません。このため、これは単に FactoryBean.isSingleton()
の反転形式ではありません。
デフォルトの実装は false
を返します。
FactoryBean.getObject()
, FactoryBean.isSingleton()
default boolean isEagerInit()
標準の FactoryBean は先行初期化されることは期待されていません。その FactoryBean.getObject()
は、シングルトンオブジェクトの場合でも、実際のアクセスのためにのみ呼び出されます。このメソッドから true
を返すことは、FactoryBean.getObject()
を積極的に呼び出し、ポストプロセッサーを積極的に適用する必要があることを提案しています。これは、singleton
オブジェクトの場合、特に起動時にポストプロセッサーが適用されることを期待している場合に意味があります。
デフォルトの実装は false
を返します。
ConfigurableListableBeanFactory.preInstantiateSingletons()