インターフェース ConfigurableBeanFactory
- すべてのスーパーインターフェース:
BeanFactory, HierarchicalBeanFactory, SingletonBeanRegistry
- すべての既知のサブインターフェース:
ConfigurableListableBeanFactory
BeanFactory インターフェースの Bean ファクトリクライアントメソッドに加えて、Bean ファクトリを構成する機能を提供します。 この Bean ファクトリインターフェースは、通常のアプリケーションコードで使用するためのものではありません。通常のニーズには BeanFactory または ListableBeanFactory を使用してください。この拡張インターフェースは、フレームワーク内部のプラグアンドプレイおよび Bean ファクトリ構成メソッドへの特別なアクセスを可能にすることのみを目的としています。
- 導入:
- 03.11.2003
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE標準プロトタイプスコープのスコープ識別子: 「プロトタイプ」。static final StringSE標準のシングルトンスコープのスコープ識別子: 「シングルトン」。インターフェース BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHAR方法の概要
修飾子と型メソッド説明voidaddBeanPostProcessor(BeanPostProcessor beanPostProcessor) このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。voidaddEmbeddedValueResolver(StringValueResolver valueResolver) アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。voidすべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。voidcopyConfigurationFrom(ConfigurableBeanFactory otherFactory) 指定された他のファクトリから関連するすべての構成をコピーします。voidこの BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。voiddestroyBean(StringSE beanName, ObjectSE beanInstance) 指定された Bean インスタンス(通常はこのファクトリから取得されたプロトタイプインスタンス)を、その Bean 定義に従って破棄します。voiddestroyScopedBean(StringSE beanName) 現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。void使い捨てとして登録されているインナー Bean を含め、このファクトリ内のすべてのシングルトン Bean を破棄します。この Bean ファクトリのApplicationStartupを return してください。Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、nullのみ)。Bean 定義値の式の解決戦略を返します。int登録されている BeanPostProcessors の現在の数があれば返します。バックグラウンドブートストラップ用のExecutorSE (TaskExecutorの場合もある) を返します (存在する場合)。関連する ConversionService があれば、それを返します。StringSE[]getDependenciesForBean(StringSE beanName) 指定された Bean が依存するすべての Bean の名前を返します(存在する場合)。StringSE[]getDependentBeans(StringSE beanName) 指定された Bean に依存するすべての Bean の名前を返します(存在する場合)。getMergedBeanDefinition(StringSE beanName) 指定された Bean 名のマージされた BeanDefinition を返し、必要に応じて子 Bean 定義をその親とマージします。getRegisteredScope(StringSE scopeName) 指定されたスコープ名のスコープ実装があれば、それを返します。StringSE[]現在登録されているすべてのスコープの名前を返します。一時的な ClassLoader を返し、型マッチングの目的で使用します(ある場合)。この BeanFactory で使用されている型コンバーターを入手します。boolean埋め込み値リゾルバーがこの Bean ファクトリに登録されており、resolveEmbeddedValue(String)を通じて適用されるかどうかを判別します。boolean指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。booleanisCurrentlyInCreation(StringSE beanName) 指定された Bean が現在作成中であるかどうかを判別します。booleanisFactoryBean(StringSE name) 指定された名前の Bean が FactoryBean であるかどうかを判別します。voidregisterAlias(StringSE beanName, StringSE alias) Bean 名を指定して、エイリアスを作成します。voidregisterCustomEditor(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass) 指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。voidregisterDependentBean(StringSE beanName, StringSE dependentBeanName) 所定の Bean が破棄される前に破棄される、所定の Bean の依存 Bean を登録します。voidregisterScope(StringSE scopeName, Scope scope) 指定されたスコープの実装に裏付けられた、指定されたスコープを登録します。voidresolveAliases(StringValueResolver valueResolver) このファクトリに登録されているすべてのエイリアスターゲット名とエイリアスを解決し、指定された StringValueResolver をそれらに適用します。resolveEmbeddedValue(StringSE value) 指定された埋め込み値 (アノテーション属性など) を解決します。voidsetApplicationStartup(ApplicationStartup applicationStartup) この Bean ファクトリのApplicationStartupを設定します。voidsetBeanClassLoader(@Nullable ClassLoaderSE beanClassLoader) Bean クラスのロードに使用するクラスローダーを設定します。voidBean 定義値の式の解決戦略を指定します。voidsetBootstrapExecutor(@Nullable ExecutorSE executor) バックグラウンドブートストラップ用にExecutorSE (場合によってはTaskExecutor) を設定します。voidsetCacheBeanMetadata(boolean cacheBeanMetadata) 指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。voidsetConversionService(@Nullable ConversionService conversionService) JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用するConversionServiceを指定します。voidsetCurrentlyInCreation(StringSE beanName, boolean inCreation) 指定された Bean の現在の作成中ステータスを明示的に制御します。voidsetParentBeanFactory(BeanFactory parentBeanFactory) この Bean ファクトリの親を設定します。voidsetTempClassLoader(@Nullable ClassLoaderSE tempClassLoader) 型マッチングの目的で使用する一時的な ClassLoader を指定します。voidsetTypeConverter(TypeConverter typeConverter) この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。インターフェース BeanFactory から継承されたメソッド
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchインターフェース HierarchicalBeanFactory から継承されたメソッド
containsLocalBean, getParentBeanFactory
フィールドの詳細
SCOPE_SINGLETON
標準のシングルトンスコープのスコープ識別子: 「シングルトン」。カスタムスコープは
registerScopeを介して追加できます。- 関連事項:
SCOPE_PROTOTYPE
標準プロトタイプスコープのスコープ識別子: 「プロトタイプ」。カスタムスコープは
registerScopeを介して追加できます。- 関連事項:
メソッドの詳細
setParentBeanFactory
この Bean ファクトリの親を設定します。親は変更できないことに注意してください。ファクトリのインスタンス化時に使用できない場合にのみ、コンストラクターの外部で設定する必要があります。
- パラメーター:
parentBeanFactory- 親 BeanFactory- 例外:
IllegalStateExceptionSE- このファクトリがすでに親 BeanFactory に関連付けられている場合- 関連事項:
setBeanClassLoader
Bean クラスのロードに使用するクラスローダーを設定します。デフォルトはスレッドコンテキストクラスローダーです。このクラスローダーは、解決された Bean クラスをまだ運んでいない Bean 定義にのみ適用されることに注意してください。これは、デフォルトの Spring 2.0 の場合です。Bean 定義は Bean クラス名のみを伝送し、ファクトリが Bean 定義を処理すると解決されます。
- パラメーター:
beanClassLoader- 使用するクラスローダー、またはデフォルトのクラスローダーを提案するnull
getBeanClassLoader
@Nullable ClassLoaderSE getBeanClassLoader()Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、nullのみ)。- 関連事項:
setTempClassLoader
型マッチングの目的で使用する一時 ClassLoader を指定します。デフォルトは none で、標準の Bean ClassLoader を使用するだけです。一時的な ClassLoader は、実際の Bean クラスが可能な限り遅延して読み込まれるようにするために、通常、 読み込み時のウィービングが関係する場合に指定されます。BeanFactory がブートストラップフェーズを完了すると、一時的なローダーは削除されます。
- 導入:
- 2.5
getTempClassLoader
setCacheBeanMetadata
void setCacheBeanMetadata(boolean cacheBeanMetadata) 指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。デフォルトはオンです。このフラグをオフにすると、Bean 定義オブジェクト、特に Bean クラスのホットリフレッシュが有効になります。このフラグがオフの場合、Bean インスタンスを作成すると、Bean クラスローダーに新たに解決されたクラスのクエリが再実行されます。
isCacheBeanMetadata
boolean isCacheBeanMetadata()指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。setBeanExpressionResolver
Bean 定義値の式の解決戦略を指定します。BeanFactory では、デフォルトでアクティブな式のサポートはありません。ApplicationContext は通常、ここで標準の式戦略を設定し、Unified EL 互換スタイルで "#{...}" 式をサポートします。
- 導入:
- 3.0
getBeanExpressionResolver
setBootstrapExecutor
バックグラウンドブートストラップ用にExecutorSE (場合によってはTaskExecutor) を設定します。- 導入:
- 6.2
- 関連事項:
getBootstrapExecutor
@Nullable ExecutorSE getBootstrapExecutor()バックグラウンドブートストラップ用のExecutorSE (TaskExecutorの場合もある) を返します (存在する場合)。- 導入:
- 6.2
setConversionService
JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用するConversionServiceを指定します。- 導入:
- 3.0
getConversionService
addPropertyEditorRegistrar
すべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。このようなレジストラは、新しい PropertyEditor インスタンスを作成し、Bean を作成するたびに新しい、指定されたレジストリに登録します。これにより、カスタムエディターで同期する必要がなくなります。
registerCustomEditor(Class, Class)の代わりにこのメソッドを使用するのが一般的に望ましいです。指定されたレジストラが
PropertyEditorRegistrar.overridesDefaultEditors()を実装してtrueを返す場合、遅延適用されます (デフォルトのエディターが実際に必要な場合のみ)。- パラメーター:
registrar- 登録する PropertyEditorRegistrar- 関連事項:
registerCustomEditor
void registerCustomEditor(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass) 指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。提供時の構成中に呼び出されます。このメソッドは共有カスタムエディターインスタンスを登録することに注意してください。そのインスタンスへのアクセスは、スレッドセーフのために同期されます。カスタムエディターでの同期の必要性を回避するために、このメソッドの代わりに
addPropertyEditorRegistrar(PropertyEditorRegistrar)を使用することが一般的に推奨されます。- パラメーター:
requiredType- プロパティの型propertyEditorClass- 登録するPropertyEditorSE クラス
copyRegisteredEditorsTo
この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。- パラメーター:
registry- 初期化する PropertyEditorRegistry
setTypeConverter
この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。これにより、デフォルトの PropertyEditor メカニズムがオーバーライドされるため、カスタムエディターやカスタムエディターレジストラーは無関係になります。
- 導入:
- 2.5
- 関連事項:
getTypeConverter
TypeConverter getTypeConverter()この BeanFactory で使用されている型コンバーターを入手します。TypeConverters は通常スレッドセーフではないため、これは各呼び出しの新しいインスタンスになる可能性があります。デフォルトの PropertyEditor メカニズムがアクティブな場合、返される TypeConverter は、登録されているすべてのカスタムエディターを認識します。
- 導入:
- 2.5
addEmbeddedValueResolver
アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。- パラメーター:
valueResolver- 埋め込み値に適用する文字列リゾルバー- 導入:
- 3.0
hasEmbeddedValueResolver
boolean hasEmbeddedValueResolver()埋め込み値リゾルバーがこの Bean ファクトリに登録されており、resolveEmbeddedValue(String)を通じて適用されるかどうかを判別します。- 導入:
- 4.3
resolveEmbeddedValue
addBeanPostProcessor
このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。提供時の構成中に呼び出されます。メモ: ここで送信されたポストプロセッサーは登録順に適用されます。
Orderedインターフェースの実装を通じて表現された順序付けセマンティクスは無視されます。自動検出されたポストプロセッサー (たとえば、ApplicationContext 内の Bean など) は、常にプログラムで登録されたポストプロセッサーの後に適用されることに注意してください。- パラメーター:
beanPostProcessor- 登録するポストプロセッサー
getBeanPostProcessorCount
int getBeanPostProcessorCount()登録されている BeanPostProcessors の現在の数があれば返します。registerScope
getRegisteredScopeNames
StringSE[] getRegisteredScopeNames()現在登録されているすべてのスコープの名前を返します。これは、明示的に登録されたスコープの名前のみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。
- 戻り値:
- スコープ名の配列、ない場合は空の配列
- 関連事項:
getRegisteredScope
setApplicationStartup
この Bean ファクトリのApplicationStartupを設定します。これにより、アプリケーションコンテキストは、アプリケーションの起動時にメトリクスを記録できます。
- パラメーター:
applicationStartup- 新しいアプリケーションのスタートアップ- 導入:
- 5.3
getApplicationStartup
ApplicationStartup getApplicationStartup()この Bean ファクトリのApplicationStartupを return してください。- 導入:
- 5.3
copyConfigurationFrom
指定された他のファクトリから関連するすべての構成をコピーします。BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。
- パラメーター:
otherFactory- コピー元のもう 1 つの BeanFactory
registerAlias
Bean 名を指定して、エイリアスを作成します。通常、このメソッドを使用して、XML ID(Bean 名に使用)内で無効な名前をサポートします。通常は提供時の構成時に呼び出されますが、エイリアスのランタイム登録にも使用できます。ファクトリ実装はエイリアスアクセスを同期する必要があります。
- パラメーター:
beanName- ターゲット Bean の正規名alias- Bean に登録するエイリアス- 例外:
BeanDefinitionStoreException- エイリアスがすでに使用されている場合
resolveAliases
このファクトリに登録されているすべてのエイリアスターゲット名とエイリアスを解決し、指定された StringValueResolver をそれらに適用します。値リゾルバーは、たとえば、ターゲット Bean 名、さらにはエイリアス名のプレースホルダーを解決する場合があります。
- パラメーター:
valueResolver- 適用する StringValueResolver- 導入:
- 2.5
getMergedBeanDefinition
指定された Bean 名のマージされた BeanDefinition を返し、必要に応じて子 Bean 定義をその親とマージします。祖先ファクトリでの Bean 定義も考慮します。- パラメーター:
beanName- マージされた定義を取得する Bean の名前- 戻り値:
- 指定された Bean の(潜在的にマージされた)BeanDefinition
- 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean 定義がない場合- 導入:
- 2.5
isFactoryBean
指定された名前の Bean が FactoryBean であるかどうかを判別します。- パラメーター:
name- チェックする Bean の名前- 戻り値:
- Bean が FactoryBean かどうか (
falseは、Bean は存在するが FactoryBean ではないことを意味します) - 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 導入:
- 2.5
setCurrentlyInCreation
指定された Bean の現在の作成中ステータスを明示的に制御します。コンテナー内部でのみ使用します。- パラメーター:
beanName- Bean の名前inCreation- Bean が現在作成中かどうか- 導入:
- 3.1
isCurrentlyInCreation
指定された Bean が現在作成中であるかどうかを判別します。- パラメーター:
beanName- Bean の名前- 戻り値:
- Bean が現在作成中かどうか
- 導入:
- 2.5
registerDependentBean
getDependentBeans
getDependenciesForBean
destroyBean
destroyScopedBean
現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
- パラメーター:
beanName- スコープ付き Bean の名前
destroySingletons
void destroySingletons()使い捨てとして登録されているインナー Bean を含め、このファクトリ内のすべてのシングルトン Bean を破棄します。ファクトリのシャットダウン時に呼び出されます。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。