インターフェース ObjectProvider<T>
- 型パラメーター:
T
- オブジェクト型
- すべてのスーパーインターフェース:
IterableSE<T>
,ObjectFactory<T>
ObjectFactory
のバリアントで、プログラムによるオプションと緩やかな一意でない処理を可能にします。BeanFactory
環境では、ファクトリから取得されたすべての ObjectProvider
は、特定の Bean 型の BeanFactory
にバインドされ、すべてのプロバイダー呼び出しがファクトリに登録された Bean 定義と照合されます。このような呼び出しはすべて、基礎となるファクトリ状態で動的に動作し、呼び出しごとにリクエストされたターゲットオブジェクトが新たに解決されることに注意してください。
5.1 以降、このインターフェースは Iterable
SE を継承し、Stream
SE サポートを提供します。for
ループで使用でき、Iterable.forEach(java.util.function.Consumer<? super T>)
SE 反復を提供し、コレクションスタイルの stream()
アクセスを可能にします。
6.2 以降、このインターフェースはすべてのメソッドのデフォルト実装を宣言します。これにより、ユニットテストなどのカスタム方式での実装が容易になります。一般的な目的では、stream()
を実装して他のすべてのメソッドを有効にします。または、呼び出し元が期待する特定のメソッド (たとえば、getObject()
または getIfAvailable()
) のみを実装することもできます。
- 導入:
- 4.3
- 作成者:
- Juergen Hoeller
- 関連事項:
方法の概要
修飾子と型メソッド説明default T
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default T
getIfAvailable
(SupplierSE<T> defaultSupplier) このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default T
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default T
getIfUnique
(SupplierSE<T> defaultSupplier) このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default T
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default T
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。default void
ifAvailable
(ConsumerSE<T> dependencyConsumer) このファクトリが管理するオブジェクトのインスタンス(使用可能な場合は共有または独立)を使用します。default void
ifUnique
(ConsumerSE<T> dependencyConsumer) 一意である場合、このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を使用します。default IteratorSE<T>
iterator()
特定の順序の保証なしで(ただし、通常は登録順で)、一致するすべてのオブジェクトインスタンスでIterator
SE を返します。ファクトリの共通の順序コンパレーターに従って事前に順序付けされた、一致するすべてのオブジェクトインスタンスのシーケンシャルStream
SE を返します。stream()
特定の順序を保証せずに、一致するすべてのオブジェクトインスタンスのシーケンシャルStream
SE を返します(ただし、通常は登録順です)。インターフェース java.lang.IterableSE から継承されたメソッド
forEachSE, spliterator
メソッドの詳細
getObject
インターフェースからコピーされた説明:ObjectFactory
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- 次で指定:
- インターフェース
ObjectFactory<T>
のgetObject
- 戻り値:
- 結果のインスタンス
- 例外:
BeansException
- 作成エラーの場合
getObject
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactory.getBean(String, Object...)
の行に沿って、明示的な構築引数を指定できます。- パラメーター:
args
- 対応するインスタンスを作成するときに使用する引数- 戻り値:
- Bean のインスタンス
- 例外:
BeansException
- 作成エラーの場合- 関連事項:
getIfAvailable
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- 戻り値:
- Bean のインスタンス、または使用できない場合は
null
- 例外:
BeansException
- 作成エラーの場合- 関連事項:
getIfAvailable
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- パラメーター:
defaultSupplier
- ファクトリに何も存在しない場合にデフォルトオブジェクトを提供するためのコールバック- 戻り値:
- Bean のインスタンス、またはそのような Bean が使用できない場合は指定されたデフォルトオブジェクト
- 例外:
BeansException
- 作成エラーの場合- 導入:
- 5.0
- 関連事項:
ifAvailable
このファクトリが管理するオブジェクトのインスタンス(使用可能な場合は共有または独立)を使用します。- パラメーター:
dependencyConsumer
- 可能な場合はターゲットオブジェクトを処理するためのコールバック (他に呼ばれない)- 例外:
BeansException
- 作成エラーの場合- 導入:
- 5.0
- 関連事項:
getIfUnique
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- 戻り値:
- Bean のインスタンス、または
null
のインスタンスがない場合または一意でない場合 (つまり、プライマリとしてマークされていない複数の候補が見つかりました) - 例外:
BeansException
- 作成エラーの場合- 関連事項:
getIfUnique
このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- パラメーター:
defaultSupplier
- ファクトリに一意の候補が存在しない場合にデフォルトオブジェクトを提供するためのコールバック- 戻り値:
- Bean のインスタンス、またはそのような Bean が使用できない場合、ファクトリで一意でない場合は、提供されたデフォルトオブジェクト (つまり、プライマリとしてマークされていない複数の候補が見つかりました)
- 例外:
BeansException
- 作成エラーの場合- 導入:
- 5.0
- 関連事項:
ifUnique
一意である場合、このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を使用します。- パラメーター:
dependencyConsumer
- 一意の場合、ターゲットオブジェクトを処理するためのコールバック (他に呼ばれない)- 例外:
BeansException
- 作成エラーの場合- 導入:
- 5.0
- 関連事項:
iterator
特定の順序の保証なしで(ただし、通常は登録順で)、一致するすべてのオブジェクトインスタンスでIterator
SE を返します。- 次で指定:
- インターフェース
IterableSE<T>
のiterator
- 導入:
- 5.1
- 関連事項:
stream
特定の順序を保証せずに、一致するすべてのオブジェクトインスタンスのシーケンシャルStream
SE を返します(ただし、通常は登録順です)。- 導入:
- 5.1
- 関連事項:
orderedStream
ファクトリの共通の順序コンパレーターに従って事前に順序付けされた、一致するすべてのオブジェクトインスタンスのシーケンシャルStream
SE を返します。標準の Spring アプリケーションコンテキストでは、これは
Ordered
の規則に従って順序付けされ、アノテーションベースの構成の場合は、Order
アノテーションも考慮されます。これは、リスト / 配列型の複数要素のインジェクションポイントに類似しています。デフォルトのメソッドは、
stream()
メソッドにOrderComparator
を適用します。必要に応じてこれをオーバーライドして、AnnotationAwareOrderComparator
を適用できます。- 導入:
- 5.1
- 関連事項: