インターフェース ConfigurableBeanFactory

すべてのスーパーインターフェース:
BeanFactoryHierarchicalBeanFactorySingletonBeanRegistry
すべての既知のサブインターフェース:
ConfigurableListableBeanFactory
すべての既知の実装クラス:
AbstractAutowireCapableBeanFactoryAbstractBeanFactoryDefaultListableBeanFactory

public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry
ほとんどの Bean ファクトリによって実装される構成インターフェース。BeanFactory インターフェースの Bean ファクトリクライアントメソッドに加えて、Bean ファクトリを構成する機能を提供します。

この Bean ファクトリインターフェースは、通常のアプリケーションコードで使用するためのものではありません。通常のニーズには BeanFactory または ListableBeanFactory を使用してください。この拡張インターフェースは、フレームワーク内部のプラグアンドプレイおよび Bean ファクトリ構成メソッドへの特別なアクセスを可能にすることのみを目的としています。

導入:
03.11.2003
作成者:
Juergen Hoeller
関連事項:
  • フィールドの詳細

  • メソッドの詳細

    • setParentBeanFactory

      void setParentBeanFactory(BeanFactory parentBeanFactory) throws IllegalStateExceptionSE
      この Bean ファクトリの親を設定します。

      親は変更できないことに注意してください。ファクトリのインスタンス化時に使用できない場合にのみ、コンストラクターの外部で設定する必要があります。

      パラメーター:
      parentBeanFactory - 親 BeanFactory
      例外:
      IllegalStateExceptionSE - このファクトリがすでに親 BeanFactory に関連付けられている場合
      関連事項:
    • setBeanClassLoader

      void setBeanClassLoader(@Nullable ClassLoaderSE beanClassLoader)
      Bean クラスのロードに使用するクラスローダーを設定します。デフォルトはスレッドコンテキストクラスローダーです。

      このクラスローダーは、解決された Bean クラスをまだ運んでいない Bean 定義にのみ適用されることに注意してください。これは、デフォルトの Spring 2.0 の場合です。Bean 定義は Bean クラス名のみを伝送し、ファクトリが Bean 定義を処理すると解決されます。

      パラメーター:
      beanClassLoader - 使用するクラスローダー、またはデフォルトのクラスローダーを提案する null 
    • getBeanClassLoader

      @Nullable ClassLoaderSE getBeanClassLoader()
      Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、null のみ)。
      関連事項:
    • setTempClassLoader

      void setTempClassLoader(@Nullable ClassLoaderSE tempClassLoader)
      型マッチングの目的で使用する一時 ClassLoader を指定します。デフォルトは none で、標準の Bean ClassLoader を使用するだけです。

      一時的な ClassLoader は、実際の Bean クラスが可能な限り遅延して読み込まれるようにするために、通常、 読み込み時のウィービングが関係する場合に指定されます。BeanFactory がブートストラップフェーズを完了すると、一時的なローダーは削除されます。

      導入:
      2.5
    • getTempClassLoader

      @Nullable ClassLoaderSE getTempClassLoader()
      一時的な ClassLoader を返し、型マッチングの目的で使用します(ある場合)。
      導入:
      2.5
    • setCacheBeanMetadata

      void setCacheBeanMetadata(boolean cacheBeanMetadata)
      指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。デフォルトはオンです。

      このフラグをオフにすると、Bean 定義オブジェクト、特に Bean クラスのホットリフレッシュが有効になります。このフラグがオフの場合、Bean インスタンスを作成すると、Bean クラスローダーに新たに解決されたクラスのクエリが再実行されます。

    • isCacheBeanMetadata

      boolean isCacheBeanMetadata()
      指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。
    • setBeanExpressionResolver

      void setBeanExpressionResolver(@Nullable BeanExpressionResolver resolver)
      Bean 定義値の式の解決戦略を指定します。

      BeanFactory では、デフォルトでアクティブな式のサポートはありません。ApplicationContext は通常、ここで標準の式戦略を設定し、Unified EL 互換スタイルで "#{...}" 式をサポートします。

      導入:
      3.0
    • getBeanExpressionResolver

      @Nullable BeanExpressionResolver getBeanExpressionResolver()
      Bean 定義値の式の解決戦略を返します。
      導入:
      3.0
    • setConversionService

      void setConversionService(@Nullable ConversionService conversionService)
      JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用する ConversionService を指定します。
      導入:
      3.0
    • getConversionService

      @Nullable ConversionService getConversionService()
      関連する ConversionService があれば、それを返します。
      導入:
      3.0
    • addPropertyEditorRegistrar

      void addPropertyEditorRegistrar(PropertyEditorRegistrar registrar)
      すべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。

      このようなレジストラは、新しい PropertyEditor インスタンスを作成し、Bean を作成するたびに新しい、指定されたレジストリに登録します。これにより、カスタムエディターで同期する必要がなくなります。registerCustomEditor(java.lang.Class<?>, java.lang.Class<? extends java.beans.PropertyEditor>) の代わりにこのメソッドを使用するのが一般的に望ましいです。

      パラメーター:
      registrar - 登録する PropertyEditorRegistrar
    • registerCustomEditor

      void registerCustomEditor(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass)
      指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。提供時の構成中に呼び出されます。

      このメソッドは共有カスタムエディターインスタンスを登録することに注意してください。そのインスタンスへのアクセスは、スレッドセーフのために同期されます。カスタムエディターでの同期の必要性を回避するために、このメソッドの代わりに addPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar) を使用することが一般的に推奨されます。

      パラメーター:
      requiredType - プロパティの型
      propertyEditorClass - 登録する PropertyEditorSE クラス
    • copyRegisteredEditorsTo

      void copyRegisteredEditorsTo(PropertyEditorRegistry registry)
      この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。
      パラメーター:
      registry - 初期化する PropertyEditorRegistry
    • setTypeConverter

      void setTypeConverter(TypeConverter typeConverter)
      この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。

      これにより、デフォルトの PropertyEditor メカニズムがオーバーライドされるため、カスタムエディターやカスタムエディターレジストラーは無関係になります。

      導入:
      2.5
      関連事項:
    • getTypeConverter

      TypeConverter getTypeConverter()
      この BeanFactory で使用されている型コンバーターを入手します。TypeConverters は通常スレッドセーフではないため、これは各呼び出しの新しいインスタンスになる可能性があります。

      デフォルトの PropertyEditor メカニズムがアクティブな場合、返される TypeConverter は、登録されているすべてのカスタムエディターを認識します。

      導入:
      2.5
    • addEmbeddedValueResolver

      void addEmbeddedValueResolver(StringValueResolver valueResolver)
      アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。
      パラメーター:
      valueResolver - 埋め込み値に適用する文字列リゾルバー
      導入:
      3.0
    • hasEmbeddedValueResolver

      boolean hasEmbeddedValueResolver()
      埋め込み値リゾルバーがこの Bean ファクトリに登録されており、resolveEmbeddedValue(String) を通じて適用されるかどうかを判別します。
      導入:
      4.3
    • resolveEmbeddedValue

      @Nullable StringSE resolveEmbeddedValue(StringSE value)
      指定された埋め込み値を解決します。アノテーション属性。
      パラメーター:
      value - 解決する値
      戻り値:
      解決された値 (元の値をそのまま使用できます)
      導入:
      3.0
    • addBeanPostProcessor

      void addBeanPostProcessor(BeanPostProcessor beanPostProcessor)
      このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。提供時の構成中に呼び出されます。

      メモ: ここで送信されたポストプロセッサーは、登録順に適用されます。Ordered インターフェースの実装を通じて表現された順序付けのセマンティクスは無視されます。自動検出されたポストプロセッサー(ApplicationContext の Bean など)は、プログラムで登録されたポストプロセッサーの後に常に適用されることに注意してください。

      パラメーター:
      beanPostProcessor - 登録するポストプロセッサー
    • getBeanPostProcessorCount

      int getBeanPostProcessorCount()
      登録されている BeanPostProcessors の現在の数があれば返します。
    • registerScope

      void registerScope(StringSE scopeName, Scope scope)
      指定されたスコープの実装に裏付けられた、指定されたスコープを登録します。
      パラメーター:
      scopeName - スコープ識別子
      scope - バッキングスコープの実装
    • getRegisteredScopeNames

      StringSE[] getRegisteredScopeNames()
      現在登録されているすべてのスコープの名前を返します。

      これは、明示的に登録されたスコープの名前のみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。

      戻り値:
      スコープ名の配列、ない場合は空の配列
      関連事項:
    • getRegisteredScope

      @Nullable Scope getRegisteredScope(StringSE scopeName)
      指定されたスコープ名のスコープ実装があれば、それを返します。

      これは明示的に登録されたスコープのみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。

      パラメーター:
      scopeName - スコープの名前
      戻り値:
      登録されたスコープ実装、または null (存在しない場合)
      関連事項:
    • setApplicationStartup

      void setApplicationStartup(ApplicationStartup applicationStartup)
      この Bean ファクトリの ApplicationStartup を設定します。

      これにより、アプリケーションコンテキストは、アプリケーションの起動時にメトリクスを記録できます。

      パラメーター:
      applicationStartup - 新しいアプリケーションのスタートアップ
      導入:
      5.3
    • getApplicationStartup

      ApplicationStartup getApplicationStartup()
      この Bean ファクトリの ApplicationStartup を return してください。
      導入:
      5.3
    • copyConfigurationFrom

      void copyConfigurationFrom(ConfigurableBeanFactory otherFactory)
      指定された他のファクトリから関連するすべての構成をコピーします。

      BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。

      パラメーター:
      otherFactory - コピー元のもう 1 つの BeanFactory
    • registerAlias

      void registerAlias(StringSE beanName, StringSE alias) throws BeanDefinitionStoreException
      Bean 名を指定して、エイリアスを作成します。通常、このメソッドを使用して、XML ID(Bean 名に使用)内で無効な名前をサポートします。

      通常は提供時の構成時に呼び出されますが、エイリアスのランタイム登録にも使用できます。ファクトリ実装はエイリアスアクセスを同期する必要があります。

      パラメーター:
      beanName - ターゲット Bean の正規名
      alias - Bean に登録するエイリアス
      例外:
      BeanDefinitionStoreException - エイリアスがすでに使用されている場合
    • resolveAliases

      void resolveAliases(StringValueResolver valueResolver)
      このファクトリに登録されているすべてのエイリアスターゲット名とエイリアスを解決し、指定された StringValueResolver をそれらに適用します。

      値リゾルバーは、たとえば、ターゲット Bean 名、さらにはエイリアス名のプレースホルダーを解決する場合があります。

      パラメーター:
      valueResolver - 適用する StringValueResolver
      導入:
      2.5
    • getMergedBeanDefinition

      BeanDefinition getMergedBeanDefinition(StringSE beanName) throws NoSuchBeanDefinitionException
      指定された Bean 名のマージされた BeanDefinition を返し、必要に応じて子 Bean 定義をその親とマージします。祖先ファクトリでの Bean 定義も考慮します。
      パラメーター:
      beanName - マージされた定義を取得する Bean の名前
      戻り値:
      指定された Bean の(潜在的にマージされた)BeanDefinition
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean 定義がない場合
      導入:
      2.5
    • isFactoryBean

      boolean isFactoryBean(StringSE name) throws NoSuchBeanDefinitionException
      指定された名前の Bean が FactoryBean であるかどうかを判別します。
      パラメーター:
      name - チェックする Bean の名前
      戻り値:
      Bean が FactoryBean かどうか (false は、Bean は存在するが FactoryBean ではないことを意味します)
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      導入:
      2.5
    • setCurrentlyInCreation

      void setCurrentlyInCreation(StringSE beanName, boolean inCreation)
      指定された Bean の現在の作成中ステータスを明示的に制御します。コンテナー内部でのみ使用します。
      パラメーター:
      beanName - Bean の名前
      inCreation - Bean が現在作成中かどうか
      導入:
      3.1
    • isCurrentlyInCreation

      boolean isCurrentlyInCreation(StringSE beanName)
      指定された Bean が現在作成中であるかどうかを判別します。
      パラメーター:
      beanName - Bean の名前
      戻り値:
      Bean が現在作成中かどうか
      導入:
      2.5
    • registerDependentBean

      void registerDependentBean(StringSE beanName, StringSE dependentBeanName)
      所定の Bean が破棄される前に破棄される、所定の Bean の依存 Bean を登録します。
      パラメーター:
      beanName - Bean の名前
      dependentBeanName - 依存 Bean の名前
      導入:
      2.5
    • getDependentBeans

      StringSE[] getDependentBeans(StringSE beanName)
      指定された Bean に依存するすべての Bean の名前を返します(存在する場合)。
      パラメーター:
      beanName - Bean の名前
      戻り値:
      依存する Bean 名の配列、ない場合は空の配列
      導入:
      2.5
    • getDependenciesForBean

      StringSE[] getDependenciesForBean(StringSE beanName)
      指定された Bean が依存するすべての Bean の名前を返します(存在する場合)。
      パラメーター:
      beanName - Bean の名前
      戻り値:
      Bean が依存する Bean の名前の配列、ない場合は空の配列
      導入:
      2.5
    • destroyBean

      void destroyBean(StringSE beanName, ObjectSE beanInstance)
      指定された Bean インスタンス(通常はこのファクトリから取得されたプロトタイプインスタンス)を、その Bean 定義に従って破棄します。

      破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。

      パラメーター:
      beanName - Bean 定義の名前
      beanInstance - 破棄する Bean インスタンス
    • destroyScopedBean

      void destroyScopedBean(StringSE beanName)
      現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。

      破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。

      パラメーター:
      beanName - スコープ付き Bean の名前
    • destroySingletons

      void destroySingletons()
      使い捨てとして登録されているインナー Bean を含め、このファクトリ内のすべてのシングルトン Bean を破棄します。ファクトリのシャットダウン時に呼び出されます。

      破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。