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