public abstract class BeanFactoryUtils
extends java.lang.Object
ListableBeanFactory
インターフェースで動作する便利なメソッド。Bean ファクトリのネスト階層を考慮して、Bean カウント、Bean 名、Bean インスタンスを返します(BeanFactory インターフェースで定義されたメソッドとは対照的に、ListableBeanFactory インターフェースで定義されたメソッドはそうではありません)。
修飾子と型 | フィールドと説明 |
---|---|
static java.lang.String | GENERATED_BEAN_NAME_SEPARATOR 生成された Bean 名の区切り文字。 |
コンストラクターと説明 |
---|
BeanFactoryUtils() |
修飾子と型 | メソッドと説明 |
---|---|
static java.lang.String[] | beanNamesForAnnotationIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType) Bean インスタンスをまだ作成せずに、 Class が提供された Annotation 型を持つ祖先ファクトリで定義されたものを含むすべての Bean 名を取得します。 |
static java.lang.String[] | beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<?> type) 祖先ファクトリで定義された名前を含む、指定された型のすべての Bean 名を取得します。 |
static java.lang.String[] | beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<?> type, boolean includeNonSingletons, boolean allowEagerInit) 祖先ファクトリで定義された名前を含む、指定された型のすべての Bean 名を取得します。 |
static java.lang.String[] | beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, ResolvableType type) 祖先ファクトリで定義された名前を含む、指定された型のすべての Bean 名を取得します。 |
static java.lang.String[] | beanNamesIncludingAncestors(ListableBeanFactory lbf) 祖先ファクトリを含む、ファクトリ内のすべての Bean 名を返します。 |
static <T> T | beanOfType(ListableBeanFactory lbf, java.lang.Class<T> type) 祖先ファクトリを検索せずに、指定された型またはサブ型の単一の Bean を返します。 |
static <T> T | beanOfType(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) 祖先ファクトリを検索せずに、指定された型またはサブ型の単一の Bean を返します。 |
static <T> T | beanOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type) 特定の型またはサブ型の単一の Bean を返します。現在の Bean ファクトリが HierarchicalBeanFactory である場合は、祖先 Bean ファクトリで定義された Bean もピックアップします。 |
static <T> T | beanOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) 特定の型またはサブ型の単一の Bean を返します。現在の Bean ファクトリが HierarchicalBeanFactory である場合は、祖先 Bean ファクトリで定義された Bean もピックアップします。 |
static <T> java.util.Map<java.lang.String,T> | beansOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type) 指定された型またはサブ型のすべての Bean を返します。現在の Bean ファクトリが HierarchicalBeanFactory である場合は、祖先 Bean ファクトリで定義された Bean も取得します。 |
static <T> java.util.Map<java.lang.String,T> | beansOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) 指定された型またはサブ型のすべての Bean を返します。現在の Bean ファクトリが HierarchicalBeanFactory である場合は、祖先 Bean ファクトリで定義された Bean も取得します。 |
static int | countBeansIncludingAncestors(ListableBeanFactory lbf) このファクトリが参加する階層内のすべての Bean をカウントします。 |
static boolean | isFactoryDereference(java.lang.String name) 指定された名前がファクトリ参照解除(ファクトリ参照解除プレフィックスで始まる)かどうかを返します。 |
static boolean | isGeneratedBeanName(java.lang.String name) 指定された名前が、デフォルトの命名戦略( "#..." 部分を含む)によって生成された Bean 名であるかどうかを返します。 |
static java.lang.String | originalBeanName(java.lang.String name) 指定された(潜在的に生成された)Bean 名から「生の」Bean 名を抽出します。一意性のために追加された可能性のある "#..." 接尾部は除きます。 |
static java.lang.String | transformedBeanName(java.lang.String name) 実際の Bean 名を返し、ファクトリ参照解除接頭辞を除去します(存在する場合は、繰り返されたファクトリ接頭辞が見つかった場合も除去します)。 |
public static final java.lang.String GENERATED_BEAN_NAME_SEPARATOR
public static boolean isFactoryDereference(@Nullable java.lang.String name)
name
- Bean の名前 BeanFactory.FACTORY_BEAN_PREFIX
public static java.lang.String transformedBeanName(java.lang.String name)
name
- Bean の名前 BeanFactory.FACTORY_BEAN_PREFIX
public static boolean isGeneratedBeanName(@Nullable java.lang.String name)
name
- Bean の名前 GENERATED_BEAN_NAME_SEPARATOR
, BeanDefinitionReaderUtils.generateBeanName(org.springframework.beans.factory.config.BeanDefinition, org.springframework.beans.factory.support.BeanDefinitionRegistry)
, DefaultBeanNameGenerator
public static java.lang.String originalBeanName(java.lang.String name)
name
- 潜在的に生成された Bean 名 GENERATED_BEAN_NAME_SEPARATOR
public static int countBeansIncludingAncestors(ListableBeanFactory lbf)
「オーバーライド」された(同じ名前の子孫ファクトリで指定された)Bean は 1 回だけカウントされます。
lbf
- Bean ファクトリ beanNamesIncludingAncestors(org.springframework.beans.factory.ListableBeanFactory)
public static java.lang.String[] beanNamesIncludingAncestors(ListableBeanFactory lbf)
lbf
- Bean ファクトリ beanNamesForTypeIncludingAncestors(org.springframework.beans.factory.ListableBeanFactory, org.springframework.core.ResolvableType)
public static java.lang.String[] beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, ResolvableType type)
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このバージョンの beanNamesForTypeIncludingAncestors
には、プロトタイプと FactoryBeans が自動的に含まれます。
lbf
- Bean ファクトリ type
- Bean が一致する必要がある型 (ResolvableType
として)ListableBeanFactory.getBeanNamesForType(ResolvableType)
public static java.lang.String[] beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<?> type)
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このバージョンの beanNamesForTypeIncludingAncestors
には、プロトタイプと FactoryBeans が自動的に含まれます。
lbf
- Bean ファクトリ type
- Bean が一致する必要がある型 (Class
として)ListableBeanFactory.getBeanNamesForType(Class)
public static java.lang.String[] beanNamesForTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<?> type, boolean includeNonSingletons, boolean allowEagerInit)
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
lbf
- Bean ファクトリ includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。type
- Bean が一致する必要がある型 ListableBeanFactory.getBeanNamesForType(Class, boolean, boolean)
public static java.lang.String[] beanNamesForAnnotationIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Class
が提供された Annotation
型を持つ祖先ファクトリで定義されたものを含むすべての Bean 名を取得します。オーバーライドされた Bean 定義の場合、一意の名前を返します。lbf
- Bean ファクトリ annotationType
- 検索するアノテーションの型 ListableBeanFactory.getBeanNamesForAnnotation(Class)
public static <T> java.util.Map<java.lang.String,T> beansOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type) throws BeansException
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
注: 同じ名前の Bean は、「最も低い」ファクトリレベルで優先されます。つまり、そのような Bean は、検出されている最下位のファクトリから返され、祖先ファクトリの対応する Bean を非表示にします。この機能により、子ファクトリで同じ Bean 名を明示的に選択することにより、Bean を「置き換える」ことができます。祖先ファクトリの Bean は、型ごとのルックアップでも表示されません。
lbf
- Bean ファクトリ type
- 一致する Bean の型 BeansException
- Bean を作成できなかった場合 ListableBeanFactory.getBeansOfType(Class)
public static <T> java.util.Map<java.lang.String,T> beansOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
注: 同じ名前の Bean は、「最も低い」ファクトリレベルで優先されます。つまり、そのような Bean は、検出されている最下位のファクトリから返され、祖先ファクトリの対応する Bean を非表示にします。この機能により、子ファクトリで同じ Bean 名を明示的に選択することにより、Bean を「置き換える」ことができます。祖先ファクトリの Bean は、型ごとのルックアップでも表示されません。
lbf
- Bean ファクトリ type
- 一致する Bean の型 includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。BeansException
- Bean を作成できなかった場合 ListableBeanFactory.getBeansOfType(Class, boolean, boolean)
public static <T> T beanOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type) throws BeansException
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このバージョンの beanOfTypeIncludingAncestors
には、プロトタイプと FactoryBeans が自動的に含まれます。
注: 同じ名前の Bean は、「最も低い」ファクトリレベルで優先されます。つまり、そのような Bean は、検出されている最下位のファクトリから返され、祖先ファクトリの対応する Bean を非表示にします。この機能により、子ファクトリで同じ Bean 名を明示的に選択することにより、Bean を「置き換える」ことができます。祖先ファクトリの Bean は、型ごとのルックアップでも表示されません。
lbf
- Bean ファクトリ type
- 一致する Bean の型 NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 beansOfTypeIncludingAncestors(ListableBeanFactory, Class)
public static <T> T beanOfTypeIncludingAncestors(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
注: 同じ名前の Bean は、「最も低い」ファクトリレベルで優先されます。つまり、そのような Bean は、検出されている最下位のファクトリから返され、祖先ファクトリの対応する Bean を非表示にします。この機能により、子ファクトリで同じ Bean 名を明示的に選択することにより、Bean を「置き換える」ことができます。祖先ファクトリの Bean は、型ごとのルックアップでも表示されません。
lbf
- Bean ファクトリ type
- 一致する Bean の型 includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 beansOfTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean)
public static <T> T beanOfType(ListableBeanFactory lbf, java.lang.Class<T> type) throws BeansException
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このバージョンの beanOfType
には、プロトタイプと FactoryBeans が自動的に含まれます。
lbf
- Bean ファクトリ type
- 一致する Bean の型 NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 ListableBeanFactory.getBeansOfType(Class)
public static <T> T beanOfType(ListableBeanFactory lbf, java.lang.Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
lbf
- Bean ファクトリ type
- 一致する Bean の型 includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 ListableBeanFactory.getBeansOfType(Class, boolean, boolean)