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