クラス AbstractBeanFactory
- 実装されたすべてのインターフェース:
BeanFactory
、ConfigurableBeanFactory
、SingletonBeanRegistry
、HierarchicalBeanFactory
、AliasRegistry
- 既知の直属サブクラス
AbstractAutowireCapableBeanFactory
ConfigurableBeanFactory
SPI のすべての機能を提供する、BeanFactory
実装の抽象基本クラス。リスト可能な Bean ファクトリを想定していません。一部のバックエンドリソースから Bean 定義を取得する Bean ファクトリ実装の基本クラスとしても使用できます(Bean 定義へのアクセスは負荷の高い操作です)。 このクラスは、(その基本クラス DefaultSingletonBeanRegistry
、シングルトン / プロトタイプ決定、FactoryBean
処理、エイリアス、子 Bean 定義の Bean 定義のマージ、Bean 破棄(DisposableBean
インターフェース、カスタム破棄メソッド)を通じて、シングルトンキャッシュを提供します。さらに、Bean を管理できます。HierarchicalBeanFactory
インターフェースの実装によるファクトリ階層(Bean が不明の場合は親に委譲)。
サブクラスによって実装される主なテンプレートメソッドは getBeanDefinition(java.lang.String)
および createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])
であり、それぞれ特定の Bean 名の Bean 定義を取得し、特定の Bean 定義の Bean インスタンスを作成します。これらの操作のデフォルトの実装は、DefaultListableBeanFactory
および AbstractAutowireCapableBeanFactory
にあります。
- 導入:
- 2001 年 4 月 15 日
- 作成者:
- Rod Johnson, Juergen Hoeller, Costin Leau, Chris Beams, Phillip Webb, Sam Brannen
- 関連事項:
フィールドサマリー
クラス org.springframework.core.SimpleAliasRegistry から継承されたフィールド
logger
インターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX
インターフェース org.springframework.beans.factory.config.ConfigurableBeanFactory から継承されたフィールド
SCOPE_PROTOTYPE, SCOPE_SINGLETON
コンストラクターのサマリー
コンストラクター説明新しい AbstractBeanFactory を作成します。AbstractBeanFactory
(BeanFactory parentBeanFactory) 指定された親を持つ新しい AbstractBeanFactory を作成します。メソッドのサマリー
修飾子と型メソッド説明void
addBeanPostProcessor
(BeanPostProcessor beanPostProcessor) このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。void
addBeanPostProcessors
(CollectionSE<? extends BeanPostProcessor> beanPostProcessors) このファクトリによって作成された Bean に適用される新しい BeanPostProcessors を追加します。void
addEmbeddedValueResolver
(StringValueResolver valueResolver) アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。void
すべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。protected void
afterPrototypeCreation
(StringSE beanName) プロトタイプ作成後のコールバック。protected void
beforePrototypeCreation
(StringSE beanName) プロトタイプ作成前のコールバック。protected void
checkMergedBeanDefinition
(RootBeanDefinition mbd, StringSE beanName, ObjectSE[] args) マージされた Bean 定義を確認し、検証例外を潜在的にスローします。protected void
cleanupAfterBeanCreationFailure
(StringSE beanName) Bean の作成に失敗した後、キャッシュされたメタデータの適切なクリーンアップを実行します。protected void
clearMergedBeanDefinition
(StringSE beanName) 指定された Bean のマージされた Bean 定義を削除し、次のアクセスで再作成します。void
マージされた Bean 定義キャッシュをクリアして、完全なメタデータキャッシュにまだ適格と見なされていない Bean のエントリを削除します。boolean
containsBean
(StringSE name) この Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。protected abstract boolean
containsBeanDefinition
(StringSE beanName) この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。boolean
containsLocalBean
(StringSE name) 祖先コンテキストで定義された Bean を無視して、ローカル Bean ファクトリに、指定された名前の Bean が含まれているかどうかを返します。void
copyConfigurationFrom
(ConfigurableBeanFactory otherFactory) 指定された他のファクトリから関連するすべての構成をコピーします。void
この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。protected abstract ObjectSE
createBean
(StringSE beanName, RootBeanDefinition mbd, ObjectSE[] args) 指定された Bean 定義(および引数)の Bean インスタンスを作成します。void
destroyBean
(StringSE beanName, ObjectSE beanInstance) 指定された Bean インスタンス(通常はこのファクトリから取得されたプロトタイプインスタンス)を、その Bean 定義に従って破棄します。protected void
destroyBean
(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd) 指定された Bean 定義に従って、指定された Bean インスタンス(通常、このファクトリから取得されたプロトタイプインスタンス)を破棄します。void
destroyScopedBean
(StringSE beanName) 現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。protected <T> T
指定された Bean のインスタンス(共有または独立)を返します。protected ObjectSE
evaluateBeanDefinitionString
(StringSE value, BeanDefinition beanDefinition) Bean 定義に含まれている特定のストリングを評価し、潜在的にそれを式として解決します。StringSE[]
getAliases
(StringSE name) 定義されている場合、指定された名前のエイリアスを返します。この Bean ファクトリのApplicationStartup
を return してください。指定された Bean のインスタンス(共有または独立)を返します。<T> T
指定された Bean のインスタンス(共有または独立)を返します。<T> T
指定された Bean のインスタンス(共有または独立)を返します。指定された Bean のインスタンス(共有または独立)を返します。Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、null
のみ)。protected abstract BeanDefinition
getBeanDefinition
(StringSE beanName) 指定された Bean 名の Bean 定義を返します。Bean 定義値の式の解決戦略を返します。int
登録されている BeanPostProcessors の現在の数があれば返します。このファクトリで作成された Bean に適用される BeanPostProcessors のリストを返します。関連する ConversionService があれば、それを返します。MapSE<ClassSE<?>,
ClassSE<? extends PropertyEditorSE>> キーをクラス、値を PropertyEditor クラスとして、カスタムエディターのマップを返します。protected TypeConverter
使用するカスタム TypeConverter を返します(ある場合)。指定された Bean 名の「マージされた」BeanDefinition を返します。必要に応じて、子 Bean 定義をその親とマージします。protected RootBeanDefinition
getMergedBeanDefinition
(StringSE beanName, BeanDefinition bd) 指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された最上位 Bean の RootBeanDefinition を返します。protected RootBeanDefinition
getMergedBeanDefinition
(StringSE beanName, BeanDefinition bd, BeanDefinition containingBd) 指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された Bean の RootBeanDefinition を返します。protected RootBeanDefinition
getMergedLocalBeanDefinition
(StringSE beanName) 指定された Bean が子 Bean 定義に対応する場合、親 Bean 定義をトラバースして、マージされた RootBeanDefinition を返します。protected ObjectSE
getObjectForBeanInstance
(ObjectSE beanInstance, StringSE name, StringSE beanName, RootBeanDefinition mbd) 指定された Bean インスタンスのオブジェクト、Bean インスタンス自体または FactoryBean の場合は作成されたオブジェクトを取得します。親 Bean ファクトリ、または存在しない場合はnull
を返します。PropertyEditorRegistrars のセットを返します。getRegisteredScope
(StringSE scopeName) 指定されたスコープ名のスコープ実装があれば、それを返します。StringSE[]
現在登録されているすべてのスコープの名前を返します。一時的な ClassLoader を返し、型マッチングの目的で使用します(ある場合)。ClassSE<?>
指定された名前の Bean の型を判別します。ClassSE<?>
指定された名前の Bean の型を判別します。この BeanFactory で使用されている型コンバーターを入手します。protected ResolvableType
getTypeForFactoryBean
(StringSE beanName, RootBeanDefinition mbd, boolean allowInit) 指定された FactoryBean 定義の Bean 型を可能な限り決定します。protected boolean
このファクトリの Bean 作成フェーズがすでに開始されているかどうかを確認します。protected boolean
このファクトリが、シャットダウン時にシングルトン Bean に適用される DestructionAwareBeanPostProcessor を保持しているかどうかを返します。boolean
埋め込み値リゾルバーがこの Bean ファクトリに登録されており、ConfigurableBeanFactory.resolveEmbeddedValue(String)
を通じて適用されるかどうかを判別します。protected boolean
このファクトリが、作成時にシングルトン Bean に適用される InstantiationAwareBeanPostProcessor を保持しているかどうかを返します。protected void
このファクトリに登録されているカスタムエディターを使用して、指定された BeanWrapper を初期化します。boolean
isActuallyInCreation
(StringSE beanName) protected boolean
isBeanEligibleForMetadataCaching
(StringSE beanName) 指定された Bean が、その Bean 定義メタデータをキャッシュに入れる資格があるかどうかを判別します。boolean
isBeanNameInUse
(StringSE beanName) 指定された Bean 名がこのファクトリ内ですでに使用されているかどうかを確認します。boolean
指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。boolean
isFactoryBean
(StringSE name) 指定された名前の Bean が FactoryBean であるかどうかを判別します。protected boolean
isFactoryBean
(StringSE beanName, RootBeanDefinition mbd) 指定された Bean がFactoryBean
として定義されているかどうかを確認します。boolean
isPrototype
(StringSE name) この Bean はプロトタイプですか? つまり、BeanFactory.getBean(java.lang.String)
は常に独立したインスタンスを返しますか?protected boolean
isPrototypeCurrentlyInCreation
(StringSE beanName) 指定されたプロトタイプ Bean が現在作成中(現在のスレッド内)かどうかを返します。boolean
isSingleton
(StringSE name) この Bean は共有シングルトンですか? つまり、BeanFactory.getBean(java.lang.String)
は常に同じインスタンスを返しますか?boolean
isTypeMatch
(StringSE name, ClassSE<?> typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。boolean
isTypeMatch
(StringSE name, ResolvableType typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。protected boolean
isTypeMatch
(StringSE name, ResolvableType typeToMatch, boolean allowFactoryBeanInit) isTypeMatch(String, ResolvableType)
の内部拡張バリアント。指定された名前の Bean が指定された型と一致するかどうかをチェックします。protected void
markBeanAsCreated
(StringSE beanName) 指定した Bean をすでに作成済み(または作成中)としてマークします。protected StringSE
originalBeanName
(StringSE name) ローカルで定義されたエイリアスを正規名に解決して、元の Bean 名を決定します。protected ClassSE<?>
predictBeanType
(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) 指定された Bean の(処理された Bean インスタンスの)最終的な Bean 型を予測します。void
registerCustomEditor
(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass) 指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。protected void
registerCustomEditors
(PropertyEditorRegistry registry) この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。protected void
registerDisposableBeanIfNecessary
(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd) 指定された Bean をこのファクトリの使い捨て Bean のリストに追加し、その DisposableBean インターフェースおよび / またはファクトリシャットダウン時に呼び出される指定された destroy メソッドを登録します(該当する場合)。void
registerScope
(StringSE scopeName, Scope scope) 指定されたスコープの実装に裏付けられた、指定されたスコープを登録します。protected boolean
指定された Bean 名のシングルトンインスタンス(存在する場合)を削除します。ただし、型チェック以外の目的で使用されていない場合のみです。protected boolean
requiresDestruction
(ObjectSE bean, RootBeanDefinition mbd) シャットダウン時に指定の Bean を破棄する必要があるかどうかを判断します。protected ClassSE<?>
resolveBeanClass
(RootBeanDefinition mbd, StringSE beanName, ClassSE<?>... typesToMatch) 指定された Bean 定義の Bean クラスを解決し、Bean クラス名をクラス参照に解決し(必要に応じて)、さらに使用するために Bean 定義に解決されたクラスを保管します。resolveEmbeddedValue
(StringSE value) 指定された埋め込み値 (アノテーション属性など) を解決します。void
setApplicationStartup
(ApplicationStartup applicationStartup) この Bean ファクトリのApplicationStartup
を設定します。void
setBeanClassLoader
(ClassLoaderSE beanClassLoader) Bean クラスのロードに使用するクラスローダーを設定します。void
Bean 定義値の式の解決戦略を指定します。void
setCacheBeanMetadata
(boolean cacheBeanMetadata) 指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。void
setConversionService
(ConversionService conversionService) JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用するConversionService
を指定します。void
setParentBeanFactory
(BeanFactory parentBeanFactory) この Bean ファクトリの親を設定します。void
setTempClassLoader
(ClassLoaderSE tempClassLoader) 型マッチングの目的で使用する一時的な ClassLoader を指定します。void
setTypeConverter
(TypeConverter typeConverter) この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。protected StringSE
transformedBeanName
(StringSE name) Bean 名を返し、必要に応じてファクトリ逆参照プレフィックスを取り除き、エイリアスを正規名に解決します。クラス org.springframework.beans.factory.support.FactoryBeanRegistrySupport から継承されたメソッド
clearSingletonCache, getCachedObjectForFactoryBean, getFactoryBean, getObjectFromFactoryBean, getTypeForFactoryBean, postProcessObjectFromFactoryBean, removeSingleton
クラス org.springframework.beans.factory.support.DefaultSingletonBeanRegistry から継承されたメソッド
addSingleton, addSingletonCallback, addSingletonFactory, afterSingletonCreation, beforeSingletonCreation, containsSingleton, destroyBean, destroySingleton, destroySingletons, getDependenciesForBean, getDependentBeans, getSingleton, getSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, hasDependentBean, isCurrentlyInCreation, isCurrentThreadAllowedToHoldSingletonLock, isDependent, isSingletonCurrentlyInCreation, onSuppressedException, registerContainedBean, registerDependentBean, registerDisposableBean, registerSingleton, setCurrentlyInCreation
クラス org.springframework.core.SimpleAliasRegistry から継承されたメソッド
allowAliasOverriding, canonicalName, checkForAliasCircle, hasAlias, isAlias, registerAlias, removeAlias, resolveAliases
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.beans.factory.BeanFactory から継承されたメソッド
getBean, getBean, getBeanProvider, getBeanProvider
インターフェース org.springframework.beans.factory.config.ConfigurableBeanFactory から継承されたメソッド
destroySingletons, getBootstrapExecutor, getDependenciesForBean, getDependentBeans, isCurrentlyInCreation, registerAlias, registerDependentBean, resolveAliases, setBootstrapExecutor, setCurrentlyInCreation
インターフェース org.springframework.beans.factory.config.SingletonBeanRegistry から継承されたメソッド
addSingletonCallback, containsSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, registerSingleton
コンストラクターの詳細
AbstractBeanFactory
public AbstractBeanFactory()新しい AbstractBeanFactory を作成します。AbstractBeanFactory
指定された親を持つ新しい AbstractBeanFactory を作成します。- パラメーター:
parentBeanFactory
- 親 Bean ファクトリ、または存在しない場合はnull
- 関連事項:
メソッドの詳細
getBean
インターフェースからコピーされた説明:BeanFactory
指定された Bean のインスタンス(共有または独立)を返します。この方法では、Spring BeanFactory をシングルトンまたはプロトタイプの設計パターンの代わりとして使用できます。シングルトン Bean の場合、呼び出し元は返されたオブジェクトへの参照を保持できます。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のgetBean
- パラメーター:
name
- 取得する Bean の名前- 戻り値:
- Bean のインスタンス。戻り値が
null
になることはありませんが、ファクトリメソッドから返されたnull
のスタブになる可能性があり、equals(null)
を介してチェックされることに注意してください。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class)
の使用を検討してください。 - 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合BeansException
- Bean を取得できなかった場合
getBean
インターフェースからコピーされた説明:BeanFactory
指定された Bean のインスタンス(共有または独立)を返します。BeanFactory.getBean(String)
と同じように動作しますが、Bean が必要な型でない場合は BeanNotOfRequiredTypeException をスローすることにより、型安全の基準を提供します。これは、BeanFactory.getBean(String)
で発生する可能性があるように、結果を正しくキャストすると ClassCastException がスローされないことを意味します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のgetBean
- パラメーター:
name
- 取得する Bean の名前requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます- 戻り値:
- Bean のインスタンス。戻り値が
null
になることはないことに注意してください。リクエストされた Bean に対して解決されたファクトリメソッドからのnull
のスタブの場合、NullBean スタブに対するBeanNotOfRequiredTypeException
が発生します。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class)
の使用を検討してください。 - 例外:
NoSuchBeanDefinitionException
- そのような Bean 定義がない場合BeanNotOfRequiredTypeException
- Bean が必要な型でない場合BeansException
- Bean を作成できなかった場合
getBean
インターフェースからコピーされた説明:BeanFactory
指定された Bean のインスタンス(共有または独立)を返します。Bean 定義で指定されたデフォルト引数 (存在する場合) をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できるようにします。指定された引数は、宣言されたパラメーターの順序で特定の候補コンストラクター / ファクトリメソッドと一致する必要があることに注意してください。
- 次で指定:
- インターフェース
BeanFactory
のgetBean
- パラメーター:
name
- 取得する Bean の名前args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)- 戻り値:
- Bean のインスタンス
- 例外:
NoSuchBeanDefinitionException
- そのような Bean 定義がない場合BeanDefinitionStoreException
- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合BeansException
- Bean を作成できなかった場合
getBean
public <T> T getBean(StringSE name, @Nullable ClassSE<T> requiredType, @Nullable ObjectSE... args) throws BeansException 指定された Bean のインスタンス(共有または独立)を返します。- パラメーター:
name
- 取得する Bean の名前requiredType
- 取得する Bean の必要な型args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)- 戻り値:
- Bean のインスタンス
- 例外:
BeansException
- Bean を作成できなかった場合
doGetBean
protected <T> T doGetBean(StringSE name, @Nullable ClassSE<T> requiredType, @Nullable ObjectSE[] args, boolean typeCheckOnly) throws BeansException 指定された Bean のインスタンス(共有または独立)を返します。- パラメーター:
name
- 取得する Bean の名前requiredType
- 取得する Bean の必要な型args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)typeCheckOnly
- インスタンスが実際の使用のためではなく、型チェックのために取得されるかどうか- 戻り値:
- Bean のインスタンス
- 例外:
BeansException
- Bean を作成できなかった場合
containsBean
インターフェースからコピーされた説明:BeanFactory
この Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。指定された名前がエイリアスの場合、対応する正規の Bean 名に変換されます。
このファクトリが階層的である場合、このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに問い合わせます。
指定された名前に一致する Bean 定義またはシングルトンインスタンスが見つかった場合、このメソッドは、名前付き Bean 定義がスコープ内で具体的または抽象的、遅延または先行であるかどうかにかかわらず、
true
を返します。このメソッドからのtrue
戻り値は、必ずしもBeanFactory.getBean(java.lang.String)
が同じ名前のインスタンスを取得できることを示しているわけではないことに注意してください。- 次で指定:
- インターフェース
BeanFactory
のcontainsBean
- パラメーター:
name
- 照会する Bean の名前- 戻り値:
- 指定された名前の Bean が存在するかどうか
isSingleton
インターフェースからコピーされた説明:BeanFactory
この Bean は共有シングルトンですか? つまり、BeanFactory.getBean(java.lang.String)
は常に同じインスタンスを返しますか?メモ:
false
を返すこのメソッドは、独立したインスタンスを明確に示していません。これは、スコープが設定された Bean にも対応している可能性がある非シングルトンインスタンスを示します。BeanFactory.isPrototype(java.lang.String)
操作を使用して、独立したインスタンスを明示的にチェックします。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のisSingleton
- パラメーター:
name
- 照会する Bean の名前- 戻り値:
- この Bean がシングルトンインスタンスに対応するかどうか
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
isPrototype
インターフェースからコピーされた説明:BeanFactory
この Bean はプロトタイプですか? つまり、BeanFactory.getBean(java.lang.String)
は常に独立したインスタンスを返しますか?メモ:
false
を返すこのメソッドは、シングルトンオブジェクトを明確に示していません。これは独立したインスタンスを示し、スコープ付き Bean にも対応する場合があります。BeanFactory.isSingleton(java.lang.String)
操作を使用して、共有シングルトンインスタンスを明示的に確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のisPrototype
- パラメーター:
name
- 照会する Bean の名前- 戻り値:
- この Bean が常に独立したインスタンスを配信するかどうか
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
isTypeMatch
public boolean isTypeMatch(StringSE name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException インターフェースからコピーされた説明:BeanFactory
指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前のBeanFactory.getBean(java.lang.String)
呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のisTypeMatch
- パラメーター:
name
- 照会する Bean の名前typeToMatch
- 照合する型 (ResolvableType
として)- 戻り値:
- Bean 型が一致する場合は
true
、一致しないかまだ判別できない場合はfalse
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
isTypeMatch
protected boolean isTypeMatch(StringSE name, ResolvableType typeToMatch, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException isTypeMatch(String, ResolvableType)
の内部拡張バリアント。指定された名前の Bean が指定された型と一致するかどうかをチェックします。追加の制約を適用して、Bean が早期に作成されないようにします。- パラメーター:
name
- 照会する Bean の名前typeToMatch
- 照合する型 (ResolvableType
として)- 戻り値:
- Bean 型が一致する場合は
true
、一致しないかまだ判別できない場合はfalse
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 導入:
- 5.2
- 関連事項:
isTypeMatch
public boolean isTypeMatch(StringSE name, ClassSE<?> typeToMatch) throws NoSuchBeanDefinitionException インターフェースからコピーされた説明:BeanFactory
指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前のBeanFactory.getBean(java.lang.String)
呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のisTypeMatch
- パラメーター:
name
- 照会する Bean の名前typeToMatch
- 照合する型 (Class
として)- 戻り値:
- Bean 型が一致する場合は
true
、一致しないかまだ判別できない場合はfalse
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
getType
インターフェースからコピーされた説明:BeanFactory
指定された名前の Bean の型を判別します。具体的には、指定された名前に対してBeanFactory.getBean(java.lang.String)
が返すオブジェクトの型を決定します。FactoryBean
の場合は、FactoryBean.getObjectType()
によって公開されている、FactoryBean が作成するオブジェクトの型を返します。これにより、以前に初期化されていないFactoryBean
(BeanFactory.getType(String, boolean)
を参照)が初期化される可能性があります。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のgetType
- パラメーター:
name
- 照会する Bean の名前- 戻り値:
- Bean の型、または判別できない場合は
null
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
getType
@Nullable public ClassSE<?> getType(StringSE name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException インターフェースからコピーされた説明:BeanFactory
指定された名前の Bean の型を判別します。具体的には、指定された名前に対してBeanFactory.getBean(java.lang.String)
が返すオブジェクトの型を決定します。FactoryBean
の場合は、FactoryBean.getObjectType()
によって公開されている、FactoryBean が作成するオブジェクトの型を返します。allowFactoryBeanInit
フラグによっては、初期の型情報が利用できない場合、以前に初期化されていないFactoryBean
が初期化される可能性があります。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactory
のgetType
- パラメーター:
name
- 照会する Bean の名前allowFactoryBeanInit
-FactoryBean
がオブジェクト型を判別する目的でのみ初期化されるかどうか- 戻り値:
- Bean の型、または判別できない場合は
null
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合- 関連事項:
getAliases
インターフェースからコピーされた説明:AliasRegistry
定義されている場合、指定された名前のエイリアスを返します。- 次で指定:
- インターフェース
AliasRegistry
のgetAliases
- 次で指定:
- インターフェース
BeanFactory
のgetAliases
- オーバーライド:
- クラス
SimpleAliasRegistry
のgetAliases
- パラメーター:
name
- エイリアスをチェックする名前- 戻り値:
- エイリアス、または存在しない場合は空の配列
- 関連事項:
getParentBeanFactory
インターフェースからコピーされた説明:HierarchicalBeanFactory
親 Bean ファクトリ、または存在しない場合はnull
を返します。- 次で指定:
- インターフェース
HierarchicalBeanFactory
のgetParentBeanFactory
containsLocalBean
インターフェースからコピーされた説明:HierarchicalBeanFactory
祖先コンテキストで定義された Bean を無視して、ローカル Bean ファクトリに、指定された名前の Bean が含まれているかどうかを返します。これは
containsBean
の代替であり、祖先の Bean ファクトリから指定された名前の Bean を無視します。- 次で指定:
- インターフェース
HierarchicalBeanFactory
のcontainsLocalBean
- パラメーター:
name
- 照会する Bean の名前- 戻り値:
- 指定された名前の Bean がローカルファクトリで定義されているかどうか
- 関連事項:
setParentBeanFactory
インターフェースからコピーされた説明:ConfigurableBeanFactory
この Bean ファクトリの親を設定します。親は変更できないことに注意してください。ファクトリのインスタンス化時に使用できない場合にのみ、コンストラクターの外部で設定する必要があります。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetParentBeanFactory
- パラメーター:
parentBeanFactory
- 親 BeanFactory- 関連事項:
setBeanClassLoader
インターフェースからコピーされた説明:ConfigurableBeanFactory
Bean クラスのロードに使用するクラスローダーを設定します。デフォルトはスレッドコンテキストクラスローダーです。このクラスローダーは、解決された Bean クラスをまだ運んでいない Bean 定義にのみ適用されることに注意してください。これは、デフォルトの Spring 2.0 の場合です。Bean 定義は Bean クラス名のみを伝送し、ファクトリが Bean 定義を処理すると解決されます。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetBeanClassLoader
- パラメーター:
beanClassLoader
- 使用するクラスローダー、またはデフォルトのクラスローダーを提案するnull
getBeanClassLoader
インターフェースからコピーされた説明:ConfigurableBeanFactory
Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、null
のみ)。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetBeanClassLoader
- 関連事項:
setTempClassLoader
インターフェースからコピーされた説明:ConfigurableBeanFactory
型マッチングの目的で使用する一時 ClassLoader を指定します。デフォルトは none で、標準の Bean ClassLoader を使用するだけです。一時的な ClassLoader は、実際の Bean クラスが可能な限り遅延して読み込まれるようにするために、通常、 読み込み時のウィービングが関係する場合に指定されます。BeanFactory がブートストラップフェーズを完了すると、一時的なローダーは削除されます。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetTempClassLoader
getTempClassLoader
インターフェースからコピーされた説明:ConfigurableBeanFactory
一時的な ClassLoader を返し、型マッチングの目的で使用します(ある場合)。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetTempClassLoader
setCacheBeanMetadata
public void setCacheBeanMetadata(boolean cacheBeanMetadata) インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。デフォルトはオンです。このフラグをオフにすると、Bean 定義オブジェクト、特に Bean クラスのホットリフレッシュが有効になります。このフラグがオフの場合、Bean インスタンスを作成すると、Bean クラスローダーに新たに解決されたクラスのクエリが再実行されます。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetCacheBeanMetadata
isCacheBeanMetadata
public boolean isCacheBeanMetadata()インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のisCacheBeanMetadata
setBeanExpressionResolver
インターフェースからコピーされた説明:ConfigurableBeanFactory
Bean 定義値の式の解決戦略を指定します。BeanFactory では、デフォルトでアクティブな式のサポートはありません。ApplicationContext は通常、ここで標準の式戦略を設定し、Unified EL 互換スタイルで "#{...}" 式をサポートします。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetBeanExpressionResolver
getBeanExpressionResolver
インターフェースからコピーされた説明:ConfigurableBeanFactory
Bean 定義値の式の解決戦略を返します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetBeanExpressionResolver
setConversionService
インターフェースからコピーされた説明:ConfigurableBeanFactory
JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用するConversionService
を指定します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetConversionService
getConversionService
インターフェースからコピーされた説明:ConfigurableBeanFactory
関連する ConversionService があれば、それを返します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetConversionService
addPropertyEditorRegistrar
インターフェースからコピーされた説明:ConfigurableBeanFactory
すべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。このようなレジストラは、新しい PropertyEditor インスタンスを作成し、Bean を作成するたびに新しい、指定されたレジストリに登録します。これにより、カスタムエディターで同期する必要がなくなります。
ConfigurableBeanFactory.registerCustomEditor(java.lang.Class<?>, java.lang.Class<? extends java.beans.PropertyEditor>)
の代わりにこのメソッドを使用するのが一般的に望ましいです。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のaddPropertyEditorRegistrar
- パラメーター:
registrar
- 登録する PropertyEditorRegistrar
getPropertyEditorRegistrars
PropertyEditorRegistrars のセットを返します。registerCustomEditor
public void registerCustomEditor(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass) インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。提供時の構成中に呼び出されます。このメソッドは共有カスタムエディターインスタンスを登録することに注意してください。そのインスタンスへのアクセスは、スレッドセーフのために同期されます。カスタムエディターでの同期の必要性を回避するために、このメソッドの代わりに
ConfigurableBeanFactory.addPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar)
を使用することが一般的に推奨されます。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のregisterCustomEditor
- パラメーター:
requiredType
- プロパティの型propertyEditorClass
- 登録するPropertyEditor
SE クラス
copyRegisteredEditorsTo
インターフェースからコピーされた説明:ConfigurableBeanFactory
この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のcopyRegisteredEditorsTo
- パラメーター:
registry
- 初期化する PropertyEditorRegistry
getCustomEditors
キーをクラス、値を PropertyEditor クラスとして、カスタムエディターのマップを返します。setTypeConverter
インターフェースからコピーされた説明:ConfigurableBeanFactory
この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。これにより、デフォルトの PropertyEditor メカニズムがオーバーライドされるため、カスタムエディターやカスタムエディターレジストラーは無関係になります。
getCustomTypeConverter
使用するカスタム TypeConverter を返します(ある場合)。- 戻り値:
- カスタム TypeConverter、または何も指定されていない場合は
null
getTypeConverter
インターフェースからコピーされた説明:ConfigurableBeanFactory
この BeanFactory で使用されている型コンバーターを入手します。TypeConverters は通常スレッドセーフではないため、これは各呼び出しの新しいインスタンスになる可能性があります。デフォルトの PropertyEditor メカニズムがアクティブな場合、返される TypeConverter は、登録されているすべてのカスタムエディターを認識します。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetTypeConverter
addEmbeddedValueResolver
インターフェースからコピーされた説明:ConfigurableBeanFactory
アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のaddEmbeddedValueResolver
- パラメーター:
valueResolver
- 埋め込み値に適用する文字列リゾルバー
hasEmbeddedValueResolver
public boolean hasEmbeddedValueResolver()インターフェースからコピーされた説明:ConfigurableBeanFactory
埋め込み値リゾルバーがこの Bean ファクトリに登録されており、ConfigurableBeanFactory.resolveEmbeddedValue(String)
を通じて適用されるかどうかを判別します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のhasEmbeddedValueResolver
resolveEmbeddedValue
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された埋め込み値 (アノテーション属性など) を解決します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のresolveEmbeddedValue
- パラメーター:
value
- 解決する値- 戻り値:
- 解決された値 (元の値をそのまま使用できます)
addBeanPostProcessor
インターフェースからコピーされた説明:ConfigurableBeanFactory
このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。提供時の構成中に呼び出されます。メモ: ここで送信されたポストプロセッサーは登録順に適用されます。
Ordered
インターフェースの実装を通じて表現された順序付けセマンティクスは無視されます。自動検出されたポストプロセッサー (たとえば、ApplicationContext 内の Bean など) は、常にプログラムで登録されたポストプロセッサーの後に適用されることに注意してください。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のaddBeanPostProcessor
- パラメーター:
beanPostProcessor
- 登録するポストプロセッサー
addBeanPostProcessors
このファクトリによって作成された Bean に適用される新しい BeanPostProcessors を追加します。提供時に呼び出されます。getBeanPostProcessorCount
public int getBeanPostProcessorCount()インターフェースからコピーされた説明:ConfigurableBeanFactory
登録されている BeanPostProcessors の現在の数があれば返します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetBeanPostProcessorCount
getBeanPostProcessors
このファクトリで作成された Bean に適用される BeanPostProcessors のリストを返します。hasInstantiationAwareBeanPostProcessors
protected boolean hasInstantiationAwareBeanPostProcessors()このファクトリが、作成時にシングルトン Bean に適用される InstantiationAwareBeanPostProcessor を保持しているかどうかを返します。hasDestructionAwareBeanPostProcessors
protected boolean hasDestructionAwareBeanPostProcessors()このファクトリが、シャットダウン時にシングルトン Bean に適用される DestructionAwareBeanPostProcessor を保持しているかどうかを返します。registerScope
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定されたスコープの実装に裏付けられた、指定されたスコープを登録します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のregisterScope
- パラメーター:
scopeName
- スコープ識別子scope
- バッキングスコープの実装
getRegisteredScopeNames
インターフェースからコピーされた説明:ConfigurableBeanFactory
現在登録されているすべてのスコープの名前を返します。これは、明示的に登録されたスコープの名前のみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetRegisteredScopeNames
- 戻り値:
- スコープ名の配列、ない場合は空の配列
- 関連事項:
getRegisteredScope
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定されたスコープ名のスコープ実装があれば、それを返します。これは明示的に登録されたスコープのみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetRegisteredScope
- パラメーター:
scopeName
- スコープの名前- 戻り値:
- 登録されたスコープ実装、または
null
(存在しない場合) - 関連事項:
setApplicationStartup
インターフェースからコピーされた説明:ConfigurableBeanFactory
この Bean ファクトリのApplicationStartup
を設定します。これにより、アプリケーションコンテキストは、アプリケーションの起動時にメトリクスを記録できます。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のsetApplicationStartup
- パラメーター:
applicationStartup
- 新しいアプリケーションのスタートアップ
getApplicationStartup
インターフェースからコピーされた説明:ConfigurableBeanFactory
この Bean ファクトリのApplicationStartup
を return してください。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetApplicationStartup
copyConfigurationFrom
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された他のファクトリから関連するすべての構成をコピーします。BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のcopyConfigurationFrom
- パラメーター:
otherFactory
- コピー元のもう 1 つの BeanFactory
getMergedBeanDefinition
指定された Bean 名の「マージされた」BeanDefinition を返します。必要に応じて、子 Bean 定義をその親とマージします。この
getMergedBeanDefinition
は、祖先の Bean 定義も考慮します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のgetMergedBeanDefinition
- パラメーター:
name
- マージされた定義を取得する Bean の名前 (エイリアスの可能性があります)- 戻り値:
- 指定された Bean の(潜在的にマージされた)RootBeanDefinition
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合BeanDefinitionStoreException
- 無効な Bean 定義の場合NoSuchBeanDefinitionException
- 指定された名前の Bean 定義がない場合BeansException
isFactoryBean
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された名前の Bean が FactoryBean であるかどうかを判別します。- 次で指定:
- インターフェース
ConfigurableBeanFactory
のisFactoryBean
- パラメーター:
name
- チェックする Bean の名前- 戻り値:
- Bean が FactoryBean かどうか (
false
は、Bean は存在するが FactoryBean ではないことを意味します) - 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合
isActuallyInCreation
- オーバーライド:
- クラス
DefaultSingletonBeanRegistry
のisActuallyInCreation
isPrototypeCurrentlyInCreation
指定されたプロトタイプ Bean が現在作成中(現在のスレッド内)かどうかを返します。- パラメーター:
beanName
- Bean の名前
beforePrototypeCreation
プロトタイプ作成前のコールバック。デフォルトの実装では、プロトタイプを現在作成中として登録します。
- パラメーター:
beanName
- 作成しようとしているプロトタイプの名前- 関連事項:
afterPrototypeCreation
プロトタイプ作成後のコールバック。デフォルトの実装では、プロトタイプはもう作成されていません。
- パラメーター:
beanName
- 作成されたプロトタイプの名前- 関連事項:
destroyBean
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された Bean インスタンス(通常はこのファクトリから取得されたプロトタイプインスタンス)を、その Bean 定義に従って破棄します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のdestroyBean
- パラメーター:
beanName
- Bean 定義の名前beanInstance
- 破棄する Bean インスタンス
destroyBean
指定された Bean 定義に従って、指定された Bean インスタンス(通常、このファクトリから取得されたプロトタイプインスタンス)を破棄します。- パラメーター:
beanName
- Bean 定義の名前bean
- 破棄する Bean インスタンスmbd
- マージされた Bean 定義
destroyScopedBean
インターフェースからコピーされた説明:ConfigurableBeanFactory
現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のdestroyScopedBean
- パラメーター:
beanName
- スコープ付き Bean の名前
transformedBeanName
Bean 名を返し、必要に応じてファクトリ逆参照プレフィックスを取り除き、エイリアスを正規名に解決します。- パラメーター:
name
- ユーザー指定の名前- 戻り値:
- 変換された Bean 名
originalBeanName
ローカルで定義されたエイリアスを正規名に解決して、元の Bean 名を決定します。- パラメーター:
name
- ユーザー指定の名前- 戻り値:
- 元の Bean 名
initBeanWrapper
このファクトリに登録されたカスタムエディターを使用して、指定された BeanWrapper を初期化します。Bean インスタンスを作成および移入する BeanWrappers で呼び出されます。デフォルトの実装は
registerCustomEditors(org.springframework.beans.PropertyEditorRegistry)
に委譲します。サブクラスでオーバーライドできます。- パラメーター:
bw
- 初期化する BeanWrapper
registerCustomEditors
この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。Bean インスタンスを作成および設定する BeanWrappers、およびコンストラクター引数とファクトリメソッド型の変換に使用される SimpleTypeConverter で呼び出されます。
- パラメーター:
registry
- 初期化する PropertyEditorRegistry
getMergedLocalBeanDefinition
指定された Bean が子 Bean 定義に対応する場合、親 Bean 定義をトラバースして、マージされた RootBeanDefinition を返します。- パラメーター:
beanName
- マージされた定義を取得する Bean の名前- 戻り値:
- 指定された Bean の(潜在的にマージされた)RootBeanDefinition
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合BeanDefinitionStoreException
- 無効な Bean 定義の場合BeansException
getMergedBeanDefinition
protected RootBeanDefinition getMergedBeanDefinition(StringSE beanName, BeanDefinition bd) throws BeanDefinitionStoreException 指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された最上位 Bean の RootBeanDefinition を返します。- パラメーター:
beanName
- Bean 定義の名前bd
- 元の Bean 定義 (ルート / ChildBeanDefinition)- 戻り値:
- 指定された Bean の(潜在的にマージされた)RootBeanDefinition
- 例外:
BeanDefinitionStoreException
- 無効な Bean 定義の場合
getMergedBeanDefinition
protected RootBeanDefinition getMergedBeanDefinition(StringSE beanName, BeanDefinition bd, @Nullable BeanDefinition containingBd) throws BeanDefinitionStoreException 指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された Bean の RootBeanDefinition を返します。- パラメーター:
beanName
- Bean 定義の名前bd
- 元の Bean 定義 (ルート / ChildBeanDefinition)containingBd
- 内部 Bean の場合は包含 Bean 定義、トップレベル Bean の場合はnull
- 戻り値:
- 指定された Bean の(潜在的にマージされた)RootBeanDefinition
- 例外:
BeanDefinitionStoreException
- 無効な Bean 定義の場合
checkMergedBeanDefinition
protected void checkMergedBeanDefinition(RootBeanDefinition mbd, StringSE beanName, @Nullable ObjectSE[] args) マージされた Bean 定義を確認し、検証例外を潜在的にスローします。- パラメーター:
mbd
- チェックするマージ済み Bean 定義beanName
- Bean の名前args
- Bean 作成の引数(存在する場合)
clearMergedBeanDefinition
指定された Bean のマージされた Bean 定義を削除し、次のアクセスで再作成します。- パラメーター:
beanName
- マージされた定義をクリアする Bean 名
clearMetadataCache
public void clearMetadataCache()マージされた Bean 定義キャッシュをクリアして、完全なメタデータキャッシュにまだ適格と見なされていない Bean のエントリを削除します。通常、元の Bean 定義が変更された後、たとえば
BeanFactoryPostProcessor
を適用した後にトリガーされます。この時点ですでに作成されている Bean のメタデータは保持されることに注意してください。- 導入:
- 4.2
resolveBeanClass
@Nullable protected ClassSE<?> resolveBeanClass(RootBeanDefinition mbd, StringSE beanName, ClassSE<?>... typesToMatch) throws CannotLoadBeanClassException 指定された Bean 定義の Bean クラスを解決し、Bean クラス名をクラス参照に解決し(必要に応じて)、さらに使用するために Bean 定義に解決されたクラスを保管します。- パラメーター:
mbd
- クラスを決定するためのマージされた Bean 定義beanName
- Bean の名前 (エラー処理のため)typesToMatch
- 内部型マッチングの目的の場合に一致する型 (また、返されたClass
がアプリケーションコードに公開されないことを通知します)- 戻り値:
- 解決された Bean クラス (または、存在しない場合は
null
) - 例外:
CannotLoadBeanClassException
- クラスの読み込みに失敗した場合
evaluateBeanDefinitionString
@Nullable protected ObjectSE evaluateBeanDefinitionString(@Nullable StringSE value, @Nullable BeanDefinition beanDefinition) Bean 定義に含まれている特定のストリングを評価し、潜在的にそれを式として解決します。- パラメーター:
value
- チェックする値beanDefinition
- 値が由来する Bean 定義- 戻り値:
- 解決された値
- 関連事項:
predictBeanType
@Nullable protected ClassSE<?> predictBeanType(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) 指定された Bean の(処理された Bean インスタンスの)最終的な Bean 型を予測します。getType(java.lang.String)
およびisTypeMatch(java.lang.String, org.springframework.core.ResolvableType)
によって呼び出されます。FactoryBeans は未加工の Bean 型でのみ動作することになっているため、特に FactoryBeans を処理する必要はありません。この実装は、ファクトリメソッドと InstantiationAwareBeanPostProcessors を処理できないという点で単純化されています。標準 Bean の場合、Bean 型のみを正しく予測します。サブクラスでオーバーライドされ、より高度な型検出を適用します。
- パラメーター:
beanName
- Bean の名前mbd
- 型を決定するマージされた Bean 定義typesToMatch
- 内部型マッチングの目的の場合に一致する型 (また、返されたClass
がアプリケーションコードに公開されないことを通知します)- 戻り値:
- Bean の型、または予測できない場合は
null
isFactoryBean
指定された Bean がFactoryBean
として定義されているかどうかを確認します。- パラメーター:
beanName
- Bean の名前mbd
- 対応する Bean 定義
getTypeForFactoryBean
protected ResolvableType getTypeForFactoryBean(StringSE beanName, RootBeanDefinition mbd, boolean allowInit) 指定された FactoryBean 定義の Bean 型を可能な限り決定します。ターゲット Bean に登録されているシングルトンインスタンスがない場合にのみ呼び出されます。allowInit
がtrue
であり、型を別の方法で決定できない場合、実装はターゲットファクトリ Bean をインスタンス化できます。それ以外の場合は、署名と関連するメタデータのイントロスペクトに制限されます。Bean 定義に
FactoryBean.OBJECT_TYPE_ATTRIBUTE
が設定されておらず、allowInit
がtrue
である場合、デフォルトの実装では、getBean
を介して FactoryBean を作成し、そのgetObjectType
メソッドを呼び出します。サブクラスでは、通常、ファクトリ Bean クラスのジェネリクスシグネチャーまたはそれを作成するファクトリメソッドをインスペクションすることにより、これを最適化することが推奨されます。サブクラスが FactoryBean をインスタンス化する場合、Bean を完全に設定せずにgetObjectType
メソッドを試すことを検討する必要があります。これが失敗した場合、この実装によって実行される完全な FactoryBean 作成をフォールバックとして使用する必要があります。- パラメーター:
beanName
- Bean の名前mbd
- Bean のマージされた Bean 定義allowInit
- 型を別の方法で判別できない場合に FactoryBean の初期化が許可されている場合- 戻り値:
- 決定可能な場合は Bean の型、それ以外の場合は
ResolvableType.NONE
- 導入:
- 5.2
- 関連事項:
markBeanAsCreated
指定した Bean をすでに作成済み(または作成中)としてマークします。これにより、Bean ファクトリは、指定された Bean を繰り返し作成するためにキャッシュを最適化できます。
- パラメーター:
beanName
- Bean の名前
cleanupAfterBeanCreationFailure
Bean の作成に失敗した後、キャッシュされたメタデータの適切なクリーンアップを実行します。- パラメーター:
beanName
- Bean の名前
isBeanEligibleForMetadataCaching
指定された Bean が、その Bean 定義メタデータをキャッシュに入れる資格があるかどうかを判別します。- パラメーター:
beanName
- Bean の名前- 戻り値:
- Bean のメタデータがこの時点ですでにキャッシュされている場合は、
true
removeSingletonIfCreatedForTypeCheckOnly
指定された Bean 名のシングルトンインスタンス(存在する場合)を削除します。ただし、型チェック以外の目的で使用されていない場合のみです。- パラメーター:
beanName
- Bean の名前- 戻り値:
- 実際に削除された場合は
true
、それ以外の場合はfalse
hasBeanCreationStarted
protected boolean hasBeanCreationStarted()このファクトリの Bean 作成フェーズがすでに開始されているかどうか、つまり、いずれかの Bean がその間に作成済みとしてマークされているかどうかを確認します。- 導入:
- 4.2.2
- 関連事項:
getObjectForBeanInstance
protected ObjectSE getObjectForBeanInstance(ObjectSE beanInstance, StringSE name, StringSE beanName, @Nullable RootBeanDefinition mbd) 指定された Bean インスタンスのオブジェクト、Bean インスタンス自体または FactoryBean の場合は作成されたオブジェクトを取得します。- パラメーター:
beanInstance
- 共有 Bean インスタンスname
- ファクトリ逆参照接頭辞を含む可能性がある名前beanName
- 正規の Bean 名mbd
- マージされた Bean 定義- 戻り値:
- Bean に公開するオブジェクト
isBeanNameInUse
指定された Bean 名がこのファクトリ内ですでに使用されているかどうか、つまり、ローカル Bean またはエイリアスがこの名前で登録されているか、この名前で作成された内部 Bean があるかどうかを確認します。- パラメーター:
beanName
- チェックする名前
requiresDestruction
シャットダウン時に指定の Bean を破棄する必要があるかどうかを判断します。デフォルトの実装では、DisposableBean インターフェースと、指定された destroy メソッドおよび登録された DestructionAwareBeanPostProcessors をチェックします。
- パラメーター:
bean
- チェックする Bean インスタンスmbd
- 対応する Bean 定義- 関連事項:
registerDisposableBeanIfNecessary
protected void registerDisposableBeanIfNecessary(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd) 指定された Bean をこのファクトリの使い捨て Bean のリストに追加し、その DisposableBean インターフェースおよび / またはファクトリシャットダウン時に呼び出される指定された destroy メソッドを登録します(該当する場合)。シングルトンにのみ適用されます。- パラメーター:
beanName
- Bean の名前bean
- Bean インスタンスmbd
- Bean の Bean 定義- 関連事項:
containsBeanDefinition
この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。このファクトリが参加する可能性のある階層は考慮されません。キャッシュされたシングルトンインスタンスが見つからない場合、containsBean
によって呼び出されます。具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。
- パラメーター:
beanName
- 検索する Bean の名前- 戻り値:
- この Bean ファクトリに、指定された名前の Bean 定義が含まれている場合
- 関連事項:
getBeanDefinition
指定された Bean 名の Bean 定義を返します。このメソッドは Bean 定義のメタデータが必要になるたびにこのクラスによって呼び出されるため、サブクラスは通常キャッシュを実装する必要があります。具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。
- パラメーター:
beanName
- 定義を検索する Bean の名前- 戻り値:
- このプロトタイプ名の BeanDefinition (非
null
) - 例外:
NoSuchBeanDefinitionException
- Bean 定義を解決できない場合BeansException
- エラーの場合- 関連事項:
createBean
protected abstract ObjectSE createBean(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] args) throws BeanCreationException 指定されたマージ済み Bean 定義(および引数)の Bean インスタンスを作成します。子定義の場合、Bean 定義はすでに親定義とマージされています。すべての Bean 検索メソッドは、実際の Bean 作成のためにこのメソッドに委譲します。
- パラメーター:
beanName
- Bean の名前mbd
- Bean のマージされた Bean 定義args
- コンストラクターまたはファクトリメソッドの呼び出しに使用する明示的な引数- 戻り値:
- Bean の新しいインスタンス
- 例外:
BeanCreationException
- Bean を作成できなかった場合