public interface ListableBeanFactory extends BeanFactory
BeanFactory
インターフェースの拡張。クライアントからのリクエストに応じて、名前で Bean ルックアップを 1 つずつ試行するのではなく、Bean インスタンスをすべて列挙できます。すべての Bean 定義(XML ベースのファクトリなど)をプリロードする BeanFactory 実装は、このインターフェースを実装する場合があります。 これは HierarchicalBeanFactory
である場合、戻り値は、アカウントに任意の BeanFactory 階層になりませんが、現在のファクトリで定義された Bean にのみ関連します。BeanFactoryUtils
ヘルパークラスを使用して、祖先ファクトリの Bean も検討します。
このインターフェースのメソッドは、このファクトリの Bean 定義を考慮します。これらは、ConfigurableBeanFactory
の registerSingleton
メソッドなどの他の方法で登録されたシングルトン Bean を無視します。ただし、getBeanNamesForType
と getBeansOfType
は例外で、このような手動で登録されたシングルトンもチェックします。もちろん、BeanFactory の getBean
では、そのような特殊な Bean への透過的なアクセスも可能です。ただし、通常のシナリオでは、すべての Bean がいずれにせよ外部 Bean 定義によって定義されるため、ほとんどのアプリケーションはこの区別について心配する必要はありません。
注意 : getBeanDefinitionCount
および containsBeanDefinition
を除いて、このインターフェースのメソッドは頻繁に呼び出すようには設計されていません。実装に時間がかかる場合があります。
HierarchicalBeanFactory
, BeanFactoryUtils
FACTORY_BEAN_PREFIX
修飾子と型 | メソッドと説明 |
---|---|
boolean | containsBeanDefinition(StringSE beanName) この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) 指定された Bean で annotationType の Annotation SE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、Bean のファクトリメソッド(存在する場合)を確認します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) 指定された Bean で annotationType の Annotation SE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、Bean のファクトリメソッド(存在する場合)を確認します。 |
int | getBeanDefinitionCount() ファクトリで定義されている Bean の数を返します。 |
StringSE[] | getBeanDefinitionNames() このファクトリで定義されているすべての Bean の名前を返します。 |
StringSE[] | getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType) 対応する Bean インスタンスをまだ作成せずに、提供された Annotation SE 型でアノテーションが付けられている Bean のすべての名前を検索します。 |
StringSE[] | getBeanNamesForType(ClassSE<?> type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ClassSE<?> type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ResolvableType type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ResolvableType type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
<T> ObjectProvider<T> | getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ResolvableType requiredType, boolean allowEagerInit) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> MapSE<StringSE,T> | getBeansOfType(ClassSE<T> type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。 |
<T> MapSE<StringSE,T> | getBeansOfType(ClassSE<T> type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。 |
MapSE<StringSE, ObjectSE> | getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType) 指定された Annotation SE 型でアノテーションが付けられたすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。 |
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
boolean containsBeanDefinition(StringSE beanName)
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
beanName
- 検索する Bean の名前 BeanFactory.containsBean(java.lang.String)
int getBeanDefinitionCount()
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
StringSE[] getBeanDefinitionNames()
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
<T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit)
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか getBeanProvider(ResolvableType, boolean)
, BeanFactory.getBeanProvider(Class)
, getBeansOfType(Class, boolean, boolean)
, getBeanNamesForType(Class, boolean, boolean)
<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType, boolean allowEagerInit)
requiredType
- Bean が一致する必要がある型。ジェネリクス型宣言にすることができます。ここでは、反射インジェクションポイントとは対照的に、コレクション型はサポートされていません。プログラムで特定の型に一致する Bean のリストを取得するには、実際の Bean 型をここで引数として指定し、その後 ObjectProvider.orderedStream()
またはその遅延ストリーミング / 反復オプションを使用します。allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか BeanFactory.getBeanProvider(ResolvableType)
, ObjectProvider.iterator()
, ObjectProvider.stream()
, ObjectProvider.orderedStream()
, getBeanNamesForType(ResolvableType, boolean, boolean)
StringSE[] getBeanNamesForType(ResolvableType type)
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
type
- 一致する一般的に型指定されたクラスまたはインターフェース BeanFactory.isTypeMatch(String, ResolvableType)
, FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType)
StringSE[] getBeanNamesForType(ResolvableType type, boolean includeNonSingletons, boolean allowEagerInit)
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合、FactoryBeans が初期化されることを意味する場合、FactoryBeans によって作成されたオブジェクトを考慮します。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。"allowEagerInit" が設定されていない場合、未加工の FactoryBeans のみがチェックされます(各 FactoryBean の初期化は不要です)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
type
- 一致する一般的に型指定されたクラスまたはインターフェース includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType, boolean, boolean)
StringSE[] getBeanNamesForType(@Nullable ClassSE<?> type)
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class)
StringSE[] getBeanNamesForType(@Nullable ClassSE<?> type, boolean includeNonSingletons, boolean allowEagerInit)
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合、FactoryBeans が初期化されることを意味する場合、FactoryBeans によって作成されたオブジェクトを考慮します。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。"allowEagerInit" が設定されていない場合、未加工の FactoryBeans のみがチェックされます(各 FactoryBean の初期化は不要です)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean)
<T> MapSE<StringSE,T> getBeansOfType(@Nullable ClassSE<T> type) throws BeansException
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeansOfType は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeansOfType(type, true, true)
の場合と同じになります。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
type
- 一致するクラスまたはインターフェース、またはすべての具象 Bean の null
BeansException
- Bean を作成できなかった場合 FactoryBean.getObjectType()
, BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class)
<T> MapSE<StringSE,T> getBeansOfType(@Nullable ClassSE<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合、FactoryBeans が初期化されることを意味する場合、FactoryBeans によって作成されたオブジェクトを考慮します。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。"allowEagerInit" が設定されていない場合、未加工の FactoryBeans のみがチェックされます(各 FactoryBean の初期化は不要です)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
type
- 一致するクラスまたはインターフェース、またはすべての具象 Bean の null
includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。BeansException
- Bean を作成できなかった場合 FactoryBean.getObjectType()
, BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean)
StringSE[] getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType)
Annotation
SE 型でアノテーションが付けられている Bean のすべての名前を検索します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
MapSE<StringSE,ObjectSE> getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType) throws BeansException
Annotation
SE 型でアノテーションが付けられたすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)BeansException
- Bean を作成できなかった場合 findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
@Nullable <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) throws NoSuchBeanDefinitionException
annotationType
の Annotation
SE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、Bean のファクトリメソッド(存在する場合)を確認します。beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String)
@Nullable <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
annotationType
の Annotation
SE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、Bean のファクトリメソッド(存在する場合)を確認します。beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)allowFactoryBeanInit
- FactoryBean
がオブジェクト型を判別する目的でのみ初期化されるかどうか null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String, boolean)