インターフェース SmartFactoryBean<T>

型パラメーター:
T - Bean 型
すべてのスーパーインターフェース:
FactoryBean<T>
すべての既知の実装クラス:
AbstractEntityManagerFactoryBean, LocalContainerEntityManagerFactoryBean, LocalEntityManagerFactoryBean, LocalSessionFactoryBean

public interface SmartFactoryBean<T> extends FactoryBean<T>
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 boolean
    このファクトリがリクエストされた型をサポートしているかどうかを判断します。

    インターフェース FactoryBean から継承されたメソッド

    getObject, getObjectType, isSingleton
  • メソッドの詳細

    • getObject

      default <S> @Nullable S getObject(ClassSE<S> type) throws ExceptionSE
      このファクトリでサポートされている場合は、指定された型のインスタンスを返します。

      デフォルトでは、ファクトリによって公開されるプライマリ型(FactoryBean.getObjectType() で示され、FactoryBean.getObject() によって返される)をサポートします。特定のファクトリでは、依存性注入のために追加の型をサポートする場合があります。

      パラメーター:
      type - リクエストされた型
      戻り値:
      このファクトリによって管理される対応するインスタンス、または利用できない場合は null 
      例外:
      ExceptionSE - 作成エラーの場合
      導入:
      7.0
      関連事項:
    • supportsType

      default boolean supportsType(ClassSE<?> type)
      このファクトリがリクエストされた型をサポートしているかどうかを判断します。

      デフォルトでは、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 を返します。

      戻り値:
      先行初期化が適用されるかどうか
      関連事項: