public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, SerializableSE
ConfigurableListableBeanFactory
および BeanDefinitionRegistry
インターフェースの Spring のデフォルト実装: Bean 定義メタデータに基づく本格的な Bean ファクトリ、ポストプロセッサーを介して拡張可能。典型的な使用箇所は、Bean にアクセスする前に、すべての Bean 定義を最初に登録すること(おそらく Bean 定義ファイルから読み取る)です。名前による Bean ルックアップは、事前に解決された Bean 定義メタデータオブジェクトを操作するローカル Bean 定義テーブルでの安価な操作です。
特定の Bean 定義形式のリーダーは、通常、Bean ファクトリサブクラスとしてではなく、個別に実装されることに注意してください。たとえば、XmlBeanDefinitionReader
を参照してください。
ListableBeanFactory
インターフェースの代替実装については、Bean 定義に基づいて新しいインスタンスを作成するのではなく、既存の Bean インスタンスを管理する StaticListableBeanFactory
を参照してください。
registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)
, AbstractBeanFactory.addBeanPostProcessor(org.springframework.beans.factory.config.BeanPostProcessor)
, getBean(java.lang.Class<T>)
, resolveDependency(org.springframework.beans.factory.config.DependencyDescriptor, java.lang.String, java.util.Set<java.lang.String>, org.springframework.beans.TypeConverter)
, 直列化された形式 logger
AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO, ORIGINAL_INSTANCE_SUFFIX
SCOPE_PROTOTYPE, SCOPE_SINGLETON
FACTORY_BEAN_PREFIX
コンストラクターと説明 |
---|
DefaultListableBeanFactory() 新しい DefaultListableBeanFactory を作成します。 |
DefaultListableBeanFactory(BeanFactory parentBeanFactory) 指定された親を持つ新しい DefaultListableBeanFactory を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | allowAliasOverriding() Bean 定義のオーバーライドが許可されている場合にのみ、エイリアスのオーバーライドを許可します。 |
protected void | checkForAliasCircle(StringSE name, StringSE alias) また、同じ名前の Bean 定義をオーバーライドするエイリアスをチェックします。 |
protected void | clearMergedBeanDefinition(StringSE beanName) 指定された Bean のマージされた 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 のファクトリメソッド(存在する場合)を確認します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) 指定された Bean で annotationType の Annotation SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、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 インスタンスをまだ作成せずに、提供された 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 の名前を返します。 |
IteratorSE<StringSE> | getBeanNamesIterator() このファクトリが管理するすべての Bean 名の統一ビューを返します。 |
<T> ObjectProvider<T> | getBeanProvider(ClassSE<T> requiredType) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ResolvableType requiredType) 指定された 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 名のマップを返します。 |
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, clearSingletonCache, configureBean, createBean, createBean, createBean, createBeanInstance, destroyBean, determineConstructorsFromBeanPostProcessors, determineTargetType, doCreateBean, filterPropertyDescriptorsForDependencyCheck, filterPropertyDescriptorsForDependencyCheck, getEarlyBeanReference, getInstantiationStrategy, getObjectForBeanInstance, getParameterNameDiscoverer, getTypeForFactoryBean, getTypeForFactoryBean, getTypeForFactoryMethod, ignoreDependencyInterface, ignoreDependencyType, initializeBean, initializeBean, instantiateBean, instantiateUsingFactoryMethod, invokeCustomInitMethod, invokeInitMethods, isAllowCircularReferences, isAllowRawInjectionDespiteWrapping, isExcludedFromDependencyCheck, obtainFromSupplier, populateBean, postProcessObjectFromFactoryBean, predictBeanType, removeSingleton, resolveBeanByName, resolveBeforeInstantiation, resolveDependency, setAllowCircularReferences, setAllowRawInjectionDespiteWrapping, setInstantiationStrategy, setParameterNameDiscoverer, unsatisfiedNonSimpleProperties
addBeanPostProcessor, addBeanPostProcessors, addEmbeddedValueResolver, addPropertyEditorRegistrar, afterPrototypeCreation, beforePrototypeCreation, checkMergedBeanDefinition, cleanupAfterBeanCreationFailure, containsBean, containsLocalBean, copyRegisteredEditorsTo, destroyBean, destroyBean, destroyScopedBean, doGetBean, evaluateBeanDefinitionString, getAccessControlContext, getAliases, getApplicationStartup, getBean, getBean, getBean, getBean, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getBeanPostProcessors, getConversionService, getCustomEditors, getCustomTypeConverter, getMergedBeanDefinition, getMergedBeanDefinition, getMergedBeanDefinition, getMergedLocalBeanDefinition, getParentBeanFactory, getPropertyEditorRegistrars, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getType, getType, getTypeConverter, hasBeanCreationStarted, hasDestructionAwareBeanPostProcessors, hasEmbeddedValueResolver, hasInstantiationAwareBeanPostProcessors, initBeanWrapper, isActuallyInCreation, isBeanNameInUse, isCacheBeanMetadata, isFactoryBean, isFactoryBean, isPrototype, isPrototypeCurrentlyInCreation, isSingleton, isTypeMatch, isTypeMatch, isTypeMatch, markBeanAsCreated, originalBeanName, registerCustomEditor, registerCustomEditors, registerDisposableBeanIfNecessary, registerScope, removeSingletonIfCreatedForTypeCheckOnly, requiresDestruction, resolveBeanClass, resolveEmbeddedValue, setApplicationStartup, 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, 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, resolveBeanByName, resolveDependency
addBeanPostProcessor, addEmbeddedValueResolver, addPropertyEditorRegistrar, copyRegisteredEditorsTo, destroyBean, destroyScopedBean, getAccessControlContext, getApplicationStartup, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getConversionService, getDependenciesForBean, getDependentBeans, getMergedBeanDefinition, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getTypeConverter, hasEmbeddedValueResolver, isCacheBeanMetadata, isCurrentlyInCreation, isFactoryBean, registerAlias, registerCustomEditor, registerDependentBean, registerScope, resolveAliases, resolveEmbeddedValue, setApplicationStartup, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setCurrentlyInCreation, setParentBeanFactory, setTempClassLoader, setTypeConverter
containsLocalBean, getParentBeanFactory
containsBean, getAliases, getBean, getBean, getBean, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
containsSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames
isBeanNameInUse
getAliases, isAlias, registerAlias, removeAlias
public DefaultListableBeanFactory()
public DefaultListableBeanFactory(@Nullable BeanFactory parentBeanFactory)
parentBeanFactory
- 親 BeanFactorypublic void setSerializationId(@Nullable StringSE serializationId)
@Nullable 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(@Nullable ComparatorSE<ObjectSE> dependencyComparator)
Comparator
SE を設定します。OrderComparator
, AnnotationAwareOrderComparator
@Nullable 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 が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 ListableBeanFactory
public <T> T getBean(ClassSE<T> requiredType, @Nullable ObjectSE... args) throws BeansException
BeanFactory
Bean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
このメソッドは、ListableBeanFactory
の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory
または BeanFactoryUtils
(あるいはその両方)を使用します。
BeanFactory
の getBean
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 BeanDefinitionStoreException
- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合 BeansException
- Bean を作成できなかった場合 public <T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType)
BeanFactory
ジェネリクス型を照合するには、BeanFactory.getBeanProvider(ResolvableType)
を検討してください。
BeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます BeanFactory.getBeanProvider(ResolvableType)
public <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType)
BeanFactory
リフレクティブインジェクションポイントとは対照的に、ここでは Bean のコレクションはサポートされていないことに注意してください。特定の型に一致する Bean のリストをプログラムで取得するには、ここで引数として実際の Bean 型を指定し、その後 ObjectProvider.orderedStream()
またはその遅延ストリーミング / 反復オプションを使用します。
また、Java の割り当て規則に従って、ジェネリクスのマッチングはここでは厳密です。未チェックのセマンティクス(「未チェック」の Java コンパイラー警告と同様)を使用した寛大なフォールバックマッチングの場合、このバリアントとの完全な汎用一致が available
でない場合は、2 番目のステップとして raw 型を使用して BeanFactory.getBeanProvider(Class)
を呼び出すことを検討してください。
BeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があると入力します。ジェネリクス型宣言にすることができます ObjectProvider.iterator()
, ObjectProvider.stream()
, ObjectProvider.orderedStream()
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 <T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit)
ListableBeanFactory
ListableBeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか ListableBeanFactory.getBeanProvider(ResolvableType, boolean)
, BeanFactory.getBeanProvider(Class)
, ListableBeanFactory.getBeansOfType(Class, boolean, boolean)
, ListableBeanFactory.getBeanNamesForType(Class, boolean, boolean)
public <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType, boolean allowEagerInit)
ListableBeanFactory
ListableBeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要がある型。ジェネリクス型宣言にすることができます。ここでは、反射インジェクションポイントとは対照的に、コレクション型はサポートされていません。プログラムで特定の型に一致する Bean のリストを取得するには、実際の Bean 型をここで引数として指定し、その後 ObjectProvider.orderedStream()
またはその遅延ストリーミング / 反復オプションを使用します。allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか BeanFactory.getBeanProvider(ResolvableType)
, ObjectProvider.iterator()
, ObjectProvider.stream()
, ObjectProvider.orderedStream()
, ListableBeanFactory.getBeanNamesForType(ResolvableType, boolean, boolean)
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
- 一致する一般的に型指定されたクラスまたはインターフェース BeanFactory.isTypeMatch(String, ResolvableType)
, FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType)
public StringSE[] getBeanNamesForType(ResolvableType 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
- 一致する一般的に型指定されたクラスまたはインターフェース includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType, boolean, boolean)
public StringSE[] getBeanNamesForType(@Nullable 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(@Nullable 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(@Nullable 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(@Nullable 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
Annotation
SE 型でアノテーションが付けられている Bean のすべての名前を検索します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
ListableBeanFactory
の getBeanNamesForAnnotation
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)ListableBeanFactory.findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
public MapSE<StringSE,ObjectSE> getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType)
ListableBeanFactory
Annotation
SE 型でアノテーションが付けられたすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
ListableBeanFactory
の getBeansWithAnnotation
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)ListableBeanFactory.findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
@Nullable public <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) throws NoSuchBeanDefinitionException
ListableBeanFactory
annotationType
の Annotation
SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。ListableBeanFactory
の findAnnotationOnBean
beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 ListableBeanFactory.getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, ListableBeanFactory.getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String)
@Nullable public <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
ListableBeanFactory
annotationType
の Annotation
SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。ListableBeanFactory
の findAnnotationOnBean
beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)allowFactoryBeanInit
- FactoryBean
がオブジェクト型を判別する目的でのみ初期化されるかどうか null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 ListableBeanFactory.getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, ListableBeanFactory.getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String, boolean)
public void registerResolvableDependency(ClassSE<?> dependencyType, @Nullable 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>)
protected void clearMergedBeanDefinition(StringSE beanName)
AbstractBeanFactory
AbstractBeanFactory
の clearMergedBeanDefinition
beanName
- マージされた定義をクリアする Bean 名 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 が無効な場合 BeanDefinitionOverrideException
- 指定された Bean 名の BeanDefinition がすでに存在し、それをオーバーライドすることが許可されていない場合 GenericBeanDefinition
, RootBeanDefinition
, ChildBeanDefinition
public void removeBeanDefinition(StringSE beanName) throws NoSuchBeanDefinitionException
BeanDefinitionRegistry
BeanDefinitionRegistry
の removeBeanDefinition
beanName
- 登録する Bean インスタンスの名前 NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 protected void resetBeanDefinition(StringSE beanName)
既存の Bean 定義が置換または削除された後に呼び出され、指定された Bean および親として指定された Bean を持つすべての Bean 定義で clearMergedBeanDefinition(java.lang.String)
、destroySingleton(java.lang.String)
、MergedBeanDefinitionPostProcessor.resetBeanDefinition(java.lang.String)
をトリガーします。
beanName
- リセットする Bean の名前 registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)
, removeBeanDefinition(java.lang.String)
protected boolean allowAliasOverriding()
SimpleAliasRegistry
の allowAliasOverriding
protected void checkForAliasCircle(StringSE name, StringSE alias)
SimpleAliasRegistry
の checkForAliasCircle
name
- 候補者名 alias
- 候補エイリアス SimpleAliasRegistry.registerAlias(java.lang.String, java.lang.String)
, SimpleAliasRegistry.hasAlias(java.lang.String, java.lang.String)
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 destroySingletons()
ConfigurableBeanFactory
破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
ConfigurableBeanFactory
の destroySingletons
DefaultSingletonBeanRegistry
の destroySingletons
public void destroySingleton(StringSE beanName)
DefaultSingletonBeanRegistry
destroyBean
に委譲します。DefaultSingletonBeanRegistry
の destroySingleton
beanName
- Bean の名前 DefaultSingletonBeanRegistry.destroyBean(java.lang.String, org.springframework.beans.factory.DisposableBean)
public <T> NamedBeanHolder<T> resolveNamedBean(ClassSE<T> requiredType) throws BeansException
AutowireCapableBeanFactory
これは事実上、一致するインスタンスの Bean 名を保持する BeanFactory.getBean(Class)
のバリアントです。
AutowireCapableBeanFactory
の resolveNamedBean
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- Bean を作成できなかった場合 BeanFactory.getBean(Class)
@Nullable public ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName, @Nullable SetSE<StringSE> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException
AutowireCapableBeanFactory
AutowireCapableBeanFactory
の resolveDependency
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 autowiredBeanNames
- (特定の依存関係の解決に使用される)オートワイヤーされた Bean のすべての名前が追加されることになっているセット typeConverter
- 配列とコレクションの移植に使用する TypeConverternull
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 DependencyDescriptor
@Nullable public ObjectSE doResolveDependency(DependencyDescriptor descriptor, @Nullable StringSE beanName, @Nullable SetSE<StringSE> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException
protected MapSE<StringSE,ObjectSE> findAutowireCandidates(@Nullable 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[])
@Nullable 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
@Nullable protected StringSE determinePrimaryCandidate(MapSE<StringSE,ObjectSE> candidates, ClassSE<?> requiredType)
candidates
- 必要な型に一致する候補名と候補インスタンス(または、まだ作成されていない場合は候補クラス)のマップ requiredType
- 照合するターゲット依存関係型 null
isPrimary(String, Object)
@Nullable 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 でもかまいません)@Nullable 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, @Nullable StringSE candidateName)
public StringSE toString()
ObjectSE
の toStringSE
protected ObjectSE writeReplace() throws ObjectStreamExceptionSE