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