public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, SerializableSE
ListableBeanFactory
および BeanDefinitionRegistry
インターフェースのデフォルトの実装: Bean 定義オブジェクトに基づく本格的な Bean ファクトリ。典型的な使用箇所は、すべての Bean 定義を登録してから(おそらく Bean 定義ファイルから読み取られる)、その後 Bean にアクセスします。Bean 定義ルックアップは、事前に構築された Bean 定義メタデータオブジェクトを操作する、ローカル Bean 定義テーブルでの安価な操作です。
スタンドアロン Bean ファクトリとして、またはカスタム Bean ファクトリのスーパークラスとして使用できます。特定の Bean 定義形式のリーダーは、通常、Bean ファクトリサブクラスとしてではなく、個別に実装されることに注意してください。たとえば、PropertiesBeanDefinitionReader
および XmlBeanDefinitionReader
を参照してください。
ListableBeanFactory
インターフェースの代替実装については、Bean 定義に基づいて新しいインスタンスを作成するのではなく、既存の Bean インスタンスを管理する StaticListableBeanFactory
を参照してください。
StaticListableBeanFactory
, PropertiesBeanDefinitionReader
, XmlBeanDefinitionReader
, 直列化された形式 logger, NULL_OBJECT
AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO
SCOPE_PROTOTYPE, SCOPE_SINGLETON
FACTORY_BEAN_PREFIX
コンストラクターと説明 |
---|
DefaultListableBeanFactory() 新しい DefaultListableBeanFactory を作成します。 |
DefaultListableBeanFactory(BeanFactory parentBeanFactory) 指定された親を持つ新しい DefaultListableBeanFactory を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | allowAliasOverriding() Bean 定義のオーバーライドが許可されている場合にのみ、エイリアスのオーバーライドを許可します。 |
void | clearMetadataCache() マージされた Bean 定義キャッシュをクリアして、完全なメタデータキャッシュにまだ適格と見なされていない Bean のエントリを削除します。 |
boolean | containsBeanDefinition(StringSE beanName) この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。 |
void | copyConfigurationFrom(ConfigurableBeanFactory otherFactory) 指定された他のファクトリから関連するすべての構成をコピーします。 |
void | destroySingleton(StringSE beanName) 指定された Bean を破棄します。 |
void | destroySingletons() 使い捨てとして登録されているインナー Bean を含め、このファクトリ内のすべてのシングルトン Bean を破棄します。 |
protected StringSE | determineAutowireCandidate(MapSE<StringSE, ObjectSE> candidates, DependencyDescriptor descriptor) 指定された Bean のセットでオートワイヤーの候補を決定します。 |
protected StringSE | determineHighestPriorityCandidate(MapSE<StringSE, ObjectSE> candidates, ClassSE<?> requiredType) 指定された Bean のセットで最も高い優先度を持つ候補を決定します。 |
protected StringSE | determinePrimaryCandidate(MapSE<StringSE, ObjectSE> candidates, ClassSE<?> requiredType) 指定された Bean のセットの主要な候補を決定します。 |
ObjectSE | doResolveDependency(DependencyDescriptor descriptor, StringSE beanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) 指定された Bean で annotationType の Annotation SE を検索し、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、公開された Bean 参照に見つからない場合は未加工の Bean クラスをチェックします(例: |
protected MapSE<StringSE, ObjectSE> | findAutowireCandidates(StringSE beanName, ClassSE<?> requiredType, DependencyDescriptor descriptor) 必要な型に一致する Bean インスタンスを見つけます。 |
void | freezeConfiguration() すべての Bean 定義をフリーズし、登録された Bean 定義がこれ以上変更または後処理されないことを通知します。 |
AutowireCandidateResolver | getAutowireCandidateResolver() この BeanFactory のオートワイヤ候補リゾルバーを返します(決して null ではありません)。 |
<T> T | getBean(ClassSE<T> requiredType) 指定されたオブジェクト型が存在する場合、一意に一致する Bean インスタンスを返します。 |
<T> T | getBean(ClassSE<T> requiredType, ObjectSE... args) 指定された Bean のインスタンス(共有または独立)を返します。 |
BeanDefinition | getBeanDefinition(StringSE beanName) 指定された Bean 名の Bean 定義を返します。 |
int | getBeanDefinitionCount() ファクトリで定義されている Bean の数を返します。 |
StringSE[] | getBeanDefinitionNames() このファクトリで定義されているすべての Bean の名前を返します。 |
StringSE[] | getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType) Bean インスタンスをまだ作成せずに、 Class が指定された 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 の名前を返します。 |
IteratorSE<StringSE> | getBeanNamesIterator() このファクトリが管理するすべての 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) Class に指定された Annotation SE 型を持つすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。 |
ComparatorSE<ObjectSE> | getDependencyComparator() この BeanFactory の依存関係コンパレーター( null の場合があります)を返します。 |
protected IntegerSE | getPriority(ObjectSE beanInstance) javax.annotation.Priority アノテーションによって、指定された Bean インスタンスに割り当てられた優先順位を返します。 |
StringSE | getSerializationId() 必要に応じて、直列化の目的で ID を返します(指定されている場合)。この BeanFactory をこの ID から逆直列化して、BeanFactory オブジェクトに戻すことができます。 |
boolean | isAllowBeanDefinitionOverriding() 同じ名前で別の定義を登録し、前者を自動的に置き換えて、Bean 定義をオーバーライドできるかどうかを返します。 |
boolean | isAllowEagerClassLoading() "lazy-init" としてマークされている Bean 定義についても、ファクトリが Bean クラスを積極的にロードできるかどうかを返します。 |
boolean | isAutowireCandidate(StringSE beanName, DependencyDescriptor descriptor) 指定された Bean が、一致する型の依存関係を宣言する他の Bean に注入されるオートワイヤー候補として適格であるかどうかを判別します。 |
protected boolean | isAutowireCandidate(StringSE beanName, DependencyDescriptor descriptor, AutowireCandidateResolver resolver) 指定された Bean 定義が、一致型の依存関係を宣言する他の Bean に注入されるオートワイヤー候補として適格であるかどうかを判別します。 |
protected boolean | isAutowireCandidate(StringSE beanName, RootBeanDefinition mbd, DependencyDescriptor descriptor, AutowireCandidateResolver resolver) 指定された Bean 定義が、一致型の依存関係を宣言する他の Bean に注入されるオートワイヤー候補として適格であるかどうかを判別します。 |
protected boolean | isBeanEligibleForMetadataCaching(StringSE beanName) ファクトリの構成が凍結としてマークされている場合、すべての Bean がメタデータキャッシングの対象と見なされます。 |
boolean | isConfigurationFrozen() このファクトリの Bean 定義が凍結されているかどうか、つまり |
protected boolean | isPrimary(StringSE beanName, ObjectSE beanInstance) 指定された Bean 名の Bean 定義がプライマリ Bean としてマークされているかどうかを返します。 |
protected boolean | matchesBeanName(StringSE beanName, StringSE candidateName) 指定された候補名が Bean 名またはこの Bean 定義に保管されている別名と一致するかどうかを判別します。 |
void | preInstantiateSingletons() FactoryBeans も考慮して、lazy-init 以外のすべてのシングルトンがインスタンス化されていることを確認してください。 |
void | registerBeanDefinition(StringSE beanName, BeanDefinition beanDefinition) このレジストリに新しい Bean 定義を登録します。 |
void | registerResolvableDependency(ClassSE<?> dependencyType, ObjectSE autowiredValue) 対応するオートワイヤーされた値で特別な依存関係型を登録します。 |
void | registerSingleton(StringSE beanName, ObjectSE singletonObject) 指定された既存のオブジェクトを、指定された Bean 名で、Bean レジストリにシングルトンとして登録します。 |
void | removeBeanDefinition(StringSE beanName) 指定された名前の BeanDefinition を削除します。 |
protected void | resetBeanDefinition(StringSE beanName) 指定された Bean のすべての Bean 定義キャッシュを、そこから派生した Bean のキャッシュを含めてリセットします。 |
ObjectSE | resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) このファクトリで定義された Bean に対する指定された依存関係を解決します。 |
<T> NamedBeanHolder<T> | resolveNamedBean(ClassSE<T> requiredType) 指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。 |
void | setAllowBeanDefinitionOverriding(boolean allowBeanDefinitionOverriding) 同じ名前で別の定義を登録し、前者を自動的に置き換えて、Bean 定義をオーバーライドできるようにするかどうかを設定します。 |
void | setAllowEagerClassLoading(boolean allowEagerClassLoading) "lazy-init" とマークされている Bean 定義に対しても、ファクトリが Bean クラスを積極的にロードできるかどうかを設定します。 |
void | setAutowireCandidateResolver(AutowireCandidateResolver autowireCandidateResolver) この BeanFactory のカスタムオートワイヤー候補リゾルバーを設定して、Bean 定義をオートワイヤーの候補と見なすかどうかを決定するときに使用します。 |
void | setDependencyComparator(ComparatorSE<ObjectSE> dependencyComparator) 依存リストと配列の Comparator SE を設定します。 |
void | setSerializationId(StringSE serializationId) 直列化の目的で ID を指定し、必要に応じてこの BeanFactory をこの ID から BeanFactory オブジェクトに逆直列化できるようにします。 |
StringSE | toString() |
protected ObjectSE | writeReplace() |
applyBeanPostProcessorsAfterInitialization, applyBeanPostProcessorsBeforeInitialization, applyBeanPostProcessorsBeforeInstantiation, applyBeanPropertyValues, applyMergedBeanDefinitionPostProcessors, applyPropertyValues, autowire, autowireBean, autowireBeanProperties, autowireByName, autowireByType, autowireConstructor, checkDependencies, configureBean, createBean, createBean, createBean, createBeanInstance, destroyBean, determineConstructorsFromBeanPostProcessors, determineTargetType, doCreateBean, filterPropertyDescriptorsForDependencyCheck, filterPropertyDescriptorsForDependencyCheck, getEarlyBeanReference, getInstantiationStrategy, getParameterNameDiscoverer, getTypeForFactoryBean, getTypeForFactoryMethod, ignoreDependencyInterface, ignoreDependencyType, initializeBean, initializeBean, instantiateBean, instantiateUsingFactoryMethod, invokeCustomInitMethod, invokeInitMethods, isExcludedFromDependencyCheck, populateBean, postProcessObjectFromFactoryBean, predictBeanType, removeSingleton, resolveBeforeInstantiation, resolveDependency, setAllowCircularReferences, setAllowRawInjectionDespiteWrapping, setInstantiationStrategy, setParameterNameDiscoverer, unsatisfiedNonSimpleProperties
addBeanPostProcessor, addEmbeddedValueResolver, addPropertyEditorRegistrar, afterPrototypeCreation, beforePrototypeCreation, checkMergedBeanDefinition, cleanupAfterBeanCreationFailure, clearMergedBeanDefinition, containsBean, containsLocalBean, copyRegisteredEditorsTo, destroyBean, destroyBean, destroyScopedBean, doGetBean, evaluateBeanDefinitionString, getAccessControlContext, getAliases, getBean, getBean, getBean, getBean, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getBeanPostProcessors, getConversionService, getCustomEditors, getCustomTypeConverter, getMergedBeanDefinition, getMergedBeanDefinition, getMergedBeanDefinition, getMergedLocalBeanDefinition, getObjectForBeanInstance, getParentBeanFactory, getPropertyEditorRegistrars, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getType, getTypeConverter, hasBeanCreationStarted, hasDestructionAwareBeanPostProcessors, hasEmbeddedValueResolver, hasInstantiationAwareBeanPostProcessors, initBeanWrapper, isActuallyInCreation, isBeanNameInUse, isCacheBeanMetadata, isFactoryBean, isFactoryBean, isPrototype, isPrototypeCurrentlyInCreation, isSingleton, isTypeMatch, isTypeMatch, markBeanAsCreated, originalBeanName, registerCustomEditor, registerCustomEditors, registerDisposableBeanIfNecessary, registerScope, removeSingletonIfCreatedForTypeCheckOnly, requiresDestruction, resolveBeanClass, resolveEmbeddedValue, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setParentBeanFactory, setSecurityContextProvider, setTempClassLoader, setTypeConverter, transformedBeanName
getCachedObjectForFactoryBean, getFactoryBean, getObjectFromFactoryBean, getTypeForFactoryBean
addSingleton, addSingletonFactory, afterSingletonCreation, beforeSingletonCreation, containsSingleton, destroyBean, getDependenciesForBean, getDependentBeans, getSingleton, getSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, hasDependentBean, isCurrentlyInCreation, isDependent, isSingletonCurrentlyInCreation, onSuppressedException, registerContainedBean, registerDependentBean, registerDisposableBean, setCurrentlyInCreation
canonicalName, checkForAliasCircle, hasAlias, isAlias, registerAlias, removeAlias, resolveAliases
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
ignoreDependencyInterface, ignoreDependencyType
applyBeanPostProcessorsAfterInitialization, applyBeanPostProcessorsBeforeInitialization, applyBeanPropertyValues, autowire, autowireBean, autowireBeanProperties, configureBean, createBean, createBean, destroyBean, initializeBean, resolveDependency
addBeanPostProcessor, addEmbeddedValueResolver, addPropertyEditorRegistrar, copyRegisteredEditorsTo, destroyBean, destroyScopedBean, getAccessControlContext, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getConversionService, getDependenciesForBean, getDependentBeans, getMergedBeanDefinition, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getTypeConverter, hasEmbeddedValueResolver, isCacheBeanMetadata, isCurrentlyInCreation, isFactoryBean, registerAlias, registerCustomEditor, registerDependentBean, registerScope, resolveAliases, resolveEmbeddedValue, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setCurrentlyInCreation, setParentBeanFactory, setTempClassLoader, setTypeConverter
containsLocalBean, getParentBeanFactory
containsBean, getAliases, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
containsSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames
isBeanNameInUse
getAliases, isAlias, registerAlias, removeAlias
public DefaultListableBeanFactory()
public DefaultListableBeanFactory(BeanFactory parentBeanFactory)
parentBeanFactory
- 親 BeanFactorypublic void setSerializationId(StringSE serializationId)
public StringSE getSerializationId()
public void setAllowBeanDefinitionOverriding(boolean allowBeanDefinitionOverriding)
デフォルトは「true」。
public boolean isAllowBeanDefinitionOverriding()
public void setAllowEagerClassLoading(boolean allowEagerClassLoading)
デフォルトは "true" です。このフラグをオフにすると、そのような Bean が明示的にリクエストされない限り、lazy-init Bean のクラスロードが抑制されます。特に、型によるルックアップは、型チェックを実行するためだけにオンデマンドで Bean クラスをロードする代わりに、解決されたクラス名のない Bean 定義を単に無視します。
public boolean isAllowEagerClassLoading()
public void setDependencyComparator(ComparatorSE<ObjectSE> dependencyComparator)
Comparator
SE を設定します。OrderComparator
, AnnotationAwareOrderComparator
public ComparatorSE<ObjectSE> getDependencyComparator()
null
の場合があります)を返します。public void setAutowireCandidateResolver(AutowireCandidateResolver autowireCandidateResolver)
public AutowireCandidateResolver getAutowireCandidateResolver()
null
ではありません)。public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory)
ConfigurableBeanFactory
BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。
ConfigurableBeanFactory
の copyConfigurationFrom
AbstractAutowireCapableBeanFactory
の copyConfigurationFrom
otherFactory
- コピー元のもう 1 つの BeanFactorypublic <T> T getBean(ClassSE<T> requiredType) throws BeansException
BeanFactory
このメソッドは、ListableBeanFactory
の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory
または BeanFactoryUtils
(あるいはその両方)を使用します。
BeanFactory
の getBean
requiredType
- Bean が一致する必要がある型。インターフェースまたはスーパークラスにすることができます。null
は許可されていません。NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 ListableBeanFactory
public <T> T getBean(ClassSE<T> requiredType, ObjectSE... args) throws BeansException
BeanFactory
Bean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
このメソッドは、ListableBeanFactory
の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory
または BeanFactoryUtils
(あるいはその両方)を使用します。
BeanFactory
の getBean
requiredType
- Bean が一致する必要がある型。インターフェースまたはスーパークラスにすることができます。null
は許可されていません。args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 BeanDefinitionStoreException
- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合 BeansException
- Bean を作成できなかった場合 public boolean containsBeanDefinition(StringSE beanName)
AbstractBeanFactory
containsBean
によって呼び出されます。具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。
ListableBeanFactory
の containsBeanDefinition
BeanDefinitionRegistry
の containsBeanDefinition
AbstractBeanFactory
の containsBeanDefinition
beanName
- 検索する Bean の名前 AbstractBeanFactory.containsBean(java.lang.String)
, ListableBeanFactory.containsBeanDefinition(java.lang.String)
public int getBeanDefinitionCount()
ListableBeanFactory
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
ListableBeanFactory
の getBeanDefinitionCount
BeanDefinitionRegistry
の getBeanDefinitionCount
public StringSE[] getBeanDefinitionNames()
ListableBeanFactory
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
ListableBeanFactory
の getBeanDefinitionNames
BeanDefinitionRegistry
の getBeanDefinitionNames
public StringSE[] getBeanNamesForType(ResolvableType type)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
BeanFactory.isTypeMatch(String, ResolvableType)
, FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType)
public StringSE[] getBeanNamesForType(ClassSE<?> type)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class)
public StringSE[] getBeanNamesForType(ClassSE<?> type, boolean includeNonSingletons, boolean allowEagerInit)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
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)
public <T> MapSE<StringSE,T> getBeansOfType(ClassSE<T> type) throws BeansException
ListableBeanFactory
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeansOfType は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeansOfType(type, true, true)
の場合と同じになります。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
ListableBeanFactory
の getBeansOfType
type
- 一致するクラスまたはインターフェース、またはすべての具象 Bean の null
BeansException
- Bean を作成できなかった場合 FactoryBean.getObjectType()
, BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class)
public <T> MapSE<StringSE,T> getBeansOfType(ClassSE<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
ListableBeanFactory
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
ListableBeanFactory
の getBeansOfType
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)
public StringSE[] getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType)
ListableBeanFactory
Class
が指定された Annotation
SE 型を持つ Bean のすべての名前を検索します。ListableBeanFactory
の getBeanNamesForAnnotation
annotationType
- 検索するアノテーションの型 public MapSE<StringSE,ObjectSE> getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType)
ListableBeanFactory
Class
に指定された Annotation
SE 型を持つすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。ListableBeanFactory
の getBeansWithAnnotation
annotationType
- 検索するアノテーションの型 public <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) throws NoSuchBeanDefinitionException
annotationType
の Annotation
SE を検索し、特定のクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、公開された Bean 参照に見つからない場合は未加工の Bean クラスをチェックします(たとえば、プロキシ)。ListableBeanFactory
の findAnnotationOnBean
beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションクラス null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 public void registerResolvableDependency(ClassSE<?> dependencyType, ObjectSE autowiredValue)
ConfigurableListableBeanFactory
これは、自動回転可能であることが想定されているが、ファクトリで Bean として定義されていないファクトリ / コンテキスト参照を対象としています。Bean が存在する ApplicationContext インスタンスに解決される型 ApplicationContext の依存関係。
メモ: プレーンな BeanFactory に登録されているそのようなデフォルトの型はありません。BeanFactory インターフェース自体についても同様です。
ConfigurableListableBeanFactory
の registerResolvableDependency
dependencyType
- 登録する依存関係型。これは通常、BeanFactory などの基本インターフェースであり、自動拡張依存関係(ListableBeanFactory など)として宣言されている場合は、指定された値が実際に拡張インターフェースを実装している限り、その拡張機能も解決されます。autowiredValue
- 対応するオートワイヤー値。これは、実際のターゲット値の遅延解決を可能にする ObjectFactory
インターフェースの実装でもあります。public boolean isAutowireCandidate(StringSE beanName, DependencyDescriptor descriptor) throws NoSuchBeanDefinitionException
ConfigurableListableBeanFactory
このメソッドは、祖先ファクトリもチェックします。
ConfigurableListableBeanFactory
の isAutowireCandidate
beanName
- チェックする Bean の名前 descriptor
- 解決する依存関係の記述子 NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 protected boolean isAutowireCandidate(StringSE beanName, DependencyDescriptor descriptor, AutowireCandidateResolver resolver) throws NoSuchBeanDefinitionException
beanName
- チェックする Bean 定義の名前 descriptor
- 解決する依存関係の記述子 resolver
- 実際の解決アルゴリズムに使用する AutowireCandidateResolverNoSuchBeanDefinitionException
protected boolean isAutowireCandidate(StringSE beanName, RootBeanDefinition mbd, DependencyDescriptor descriptor, AutowireCandidateResolver resolver)
beanName
- チェックする Bean 定義の名前 mbd
- チェックするマージ済み Bean 定義 descriptor
- 解決する依存関係の記述子 resolver
- 実際の解決アルゴリズムに使用する AutowireCandidateResolverpublic BeanDefinition getBeanDefinition(StringSE beanName) throws NoSuchBeanDefinitionException
AbstractBeanFactory
具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。
ConfigurableListableBeanFactory
の getBeanDefinition
BeanDefinitionRegistry
の getBeanDefinition
AbstractBeanFactory
の getBeanDefinition
beanName
- 定義を検索する Bean の名前 null
)NoSuchBeanDefinitionException
- このファクトリで定義された特定の名前の Bean がない場合 RootBeanDefinition
, ChildBeanDefinition
, ConfigurableListableBeanFactory.getBeanDefinition(java.lang.String)
public IteratorSE<StringSE> getBeanNamesIterator()
ConfigurableListableBeanFactory
Bean 定義名と手動で登録されたシングルトンインスタンスの名前が含まれます。Bean 定義名が一貫して最初に来ます。これは、Bean 名の型 / アノテーション固有の検索が機能する方法に類似しています。
ConfigurableListableBeanFactory
の getBeanNamesIterator
ListableBeanFactory.containsBeanDefinition(java.lang.String)
, SingletonBeanRegistry.registerSingleton(java.lang.String, java.lang.Object)
, ListableBeanFactory.getBeanNamesForType(org.springframework.core.ResolvableType)
, ListableBeanFactory.getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
public void clearMetadataCache()
AbstractBeanFactory
通常、元の Bean 定義への変更後にトリガーされます。BeanFactoryPostProcessor
を適用した後。この時点ですでに作成されている Bean のメタデータは保持されます。
public void freezeConfiguration()
ConfigurableListableBeanFactory
これにより、ファクトリは Bean 定義メタデータを積極的にキャッシュできます。
ConfigurableListableBeanFactory
の freezeConfiguration
public boolean isConfigurationFrozen()
ConfigurableListableBeanFactory
ConfigurableListableBeanFactory
の isConfigurationFrozen
true
(ファクトリの構成が凍結されていると見なされる場合)protected boolean isBeanEligibleForMetadataCaching(StringSE beanName)
AbstractBeanFactory
の isBeanEligibleForMetadataCaching
beanName
- Bean の名前 true
freezeConfiguration()
public void preInstantiateSingletons() throws BeansException
ConfigurableListableBeanFactory
FactoryBeans
も考慮して、lazy-init 以外のすべてのシングルトンがインスタンス化されていることを確認してください。通常、必要に応じて、提供時のセットアップの最後に呼び出されます。ConfigurableListableBeanFactory
の preInstantiateSingletons
BeansException
- シングルトン Bean の 1 つを作成できなかった場合。注: これにより、一部の Bean がすでに初期化された状態でファクトリから提供された可能性があります。この場合、ConfigurableBeanFactory.destroySingletons()
を呼び出して完全にクリーンアップします。ConfigurableBeanFactory.destroySingletons()
public void registerBeanDefinition(StringSE beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException
BeanDefinitionRegistry
BeanDefinitionRegistry
の registerBeanDefinition
beanName
- 登録する Bean インスタンスの名前 beanDefinition
- 登録する Bean インスタンスの定義 BeanDefinitionStoreException
- BeanDefinition が無効である場合、または指定された Bean 名の BeanDefinition がすでに存在する場合 (それを上書きすることはできません)RootBeanDefinition
, ChildBeanDefinition
public void removeBeanDefinition(StringSE beanName) throws NoSuchBeanDefinitionException
BeanDefinitionRegistry
BeanDefinitionRegistry
の removeBeanDefinition
beanName
- 登録する Bean インスタンスの名前 NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 protected void resetBeanDefinition(StringSE beanName)
beanName
- リセットする Bean の名前 protected boolean allowAliasOverriding()
SimpleAliasRegistry
の allowAliasOverriding
public void registerSingleton(StringSE beanName, ObjectSE singletonObject) throws IllegalStateExceptionSE
SingletonBeanRegistry
与えられたインスタンスは完全に初期化されることになっています。レジストリは初期化コールバックを実行しません(特に、InitializingBean の afterPropertiesSet
メソッドを呼び出しません)。指定されたインスタンスは、(DisposableBean の destroy
メソッドのような)破棄コールバックも受け取りません。
完全な BeanFactory 内で実行する場合: Bean が初期化および / または破棄コールバックを受け取ることになっている場合、既存のインスタンスの代わりに Bean 定義を登録します。
通常、レジストリ設定中に呼び出されますが、シングルトンのランタイム登録にも使用できます。結果として、レジストリ実装はシングルトンアクセスを同期する必要があります。BeanFactory のシングルトンの遅延初期化をサポートする場合、これを行う必要があります。
SingletonBeanRegistry
の registerSingleton
DefaultSingletonBeanRegistry
の registerSingleton
beanName
- Bean の名前 singletonObject
- 既存のシングルトンオブジェクト IllegalStateExceptionSE
InitializingBean.afterPropertiesSet()
, DisposableBean.destroy()
, BeanDefinitionRegistry.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)
public void destroySingleton(StringSE beanName)
DefaultSingletonBeanRegistry
destroyBean
に委譲します。DefaultSingletonBeanRegistry
の destroySingleton
beanName
- Bean の名前 DefaultSingletonBeanRegistry.destroyBean(java.lang.String, org.springframework.beans.factory.DisposableBean)
public void destroySingletons()
ConfigurableBeanFactory
破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
ConfigurableBeanFactory
の destroySingletons
DefaultSingletonBeanRegistry
の destroySingletons
public <T> NamedBeanHolder<T> resolveNamedBean(ClassSE<T> requiredType) throws BeansException
AutowireCapableBeanFactory
これは事実上、一致するインスタンスの Bean 名を保持する BeanFactory.getBean(Class)
のバリアントです。
AutowireCapableBeanFactory
の resolveNamedBean
requiredType
- Bean が一致する必要がある型。インターフェースまたはスーパークラスにすることができます。null
は許可されていません。NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- Bean を作成できなかった場合 BeanFactory.getBean(Class)
public ObjectSE resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) throws BeansException
AutowireCapableBeanFactory
AutowireCapableBeanFactory
の resolveDependency
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 autowiredBeanNames
- (特定の依存関係の解決に使用される)オートワイヤーされた Bean のすべての名前が追加されることになっているセット typeConverter
- 配列とコレクションの移植に使用する TypeConverternull
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 DependencyDescriptor
public ObjectSE doResolveDependency(DependencyDescriptor descriptor, StringSE beanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) throws BeansException
protected MapSE<StringSE,ObjectSE> findAutowireCandidates(StringSE beanName, ClassSE<?> requiredType, DependencyDescriptor descriptor)
beanName
- 接続しようとしている Bean の名前 requiredType
- 検索する Bean の実際の型 (配列コンポーネント型またはコレクションエレメント型の場合があります)descriptor
- 解決する依存関係の記述子 null
)BeansException
- エラーの場合 AbstractAutowireCapableBeanFactory.autowireByType(java.lang.String, org.springframework.beans.factory.support.AbstractBeanDefinition, org.springframework.beans.BeanWrapper, org.springframework.beans.MutablePropertyValues)
, AbstractAutowireCapableBeanFactory.autowireConstructor(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.reflect.Constructor<?>[], java.lang.Object[])
protected StringSE determineAutowireCandidate(MapSE<StringSE,ObjectSE> candidates, DependencyDescriptor descriptor)
@Primary
と @Priority
を(この順序で)探します。
candidates
- findAutowireCandidates(java.lang.String, java.lang.Class<?>, org.springframework.beans.factory.config.DependencyDescriptor)
によって返される、必要な型に一致する候補名と候補インスタンスのマップ descriptor
- 照合するターゲット依存関係 null
protected StringSE determinePrimaryCandidate(MapSE<StringSE,ObjectSE> candidates, ClassSE<?> requiredType)
candidates
- 必要な型に一致する候補名と候補インスタンス(または、まだ作成されていない場合は候補クラス)のマップ requiredType
- 照合するターゲット依存関係型 null
isPrimary(String, Object)
protected StringSE determineHighestPriorityCandidate(MapSE<StringSE,ObjectSE> candidates, ClassSE<?> requiredType)
@javax.annotation.Priority
に基づいています。関連する Ordered
インターフェースで定義されているように、最も低い値が最も高い優先順位になります。
candidates
- 必要な型に一致する候補名と候補インスタンス(または、まだ作成されていない場合は候補クラス)のマップ requiredType
- 照合するターゲット依存関係型 null
getPriority(Object)
protected boolean isPrimary(StringSE beanName, ObjectSE beanInstance)
beanName
- Bean の名前 beanInstance
- 対応する Bean インスタンス (null でもかまいません)protected IntegerSE getPriority(ObjectSE beanInstance)
javax.annotation.Priority
アノテーションによって、指定された Bean インスタンスに割り当てられた優先順位を返します。 デフォルトの実装は、指定された dependency comparator
に委譲し、Spring の一般的な OrderComparator
(通常は AnnotationAwareOrderComparator
)の拡張であるかどうか、method
をチェックします。そのようなコンパレータが存在しない場合、この実装は null
を返します。
beanInstance
- チェックする Bean インスタンス (null
にすることができます)null
に割り当てられた優先順位 protected boolean matchesBeanName(StringSE beanName, StringSE candidateName)
public StringSE toString()
ObjectSE
の toStringSE
protected ObjectSE writeReplace() throws ObjectStreamExceptionSE