インターフェース AutowireCapableBeanFactory

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

public interface AutowireCapableBeanFactory extends BeanFactory
既存の Bean インスタンスに対してこの機能を公開したい場合、オートワイヤーが可能な Bean ファクトリによって実装される BeanFactory インターフェースの拡張。

BeanFactory のこのサブインターフェースは、通常のアプリケーションコードで使用することを意図したものではありません。典型的なユースケースでは BeanFactory または ListableBeanFactory を使用してください。

他のフレームワークの統合コードは、このインターフェースを活用して、Spring がライフサイクルを制御しない既存の Bean インスタンスを接続および移植できます。これは、たとえば、WebWork アクションおよび Tapestry ページオブジェクトなどで特に役立ちます。

このインターフェースは、アプリケーションコードではほとんど使用されないため、ApplicationContext ファサードでは実装されないことに注意してください。ただし、ApplicationContext の ApplicationContext.getAutowireCapableBeanFactory() メソッドを介してアクセス可能なアプリケーションコンテキストからも利用できます。

また、ApplicationContext で実行している場合でも内部 BeanFactory を公開する BeanFactoryAware インターフェースを実装して、AutowireCapableBeanFactory にアクセスできます。渡された BeanFactory を AutowireCapableBeanFactory にキャストするだけです。

導入:
04.12.2003
作成者:
Juergen Hoeller
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    使用すべきではありません。
    Spring 3.0 以降: 混合オートワイヤー戦略を使用している場合は、オートワイヤーのニーズを明確に区別するために、アノテーションベースのオートワイヤーをお勧めします。
    static final int
    Bean プロパティのオートワイヤーを名前で示す定数(すべての Bean プロパティ setter に適用)。
    static final int
    型ごとの Bean プロパティのオートワイヤーを示す定数(すべての Bean プロパティ setter に適用)。
    static final int
    満たすことができる最も貪欲なコンストラクターをオートワイヤーすることを示す定数(適切なコンストラクターの解決を含む)。
    static final int
    外部で定義されたオートワイヤーがないことを示す定数。
    static final StringSE
    既存の Bean インスタンスを初期化するときの「元のインスタンス」規則の接尾辞: 完全修飾された Bean クラス名に追加されます。

    インターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド

    FACTORY_BEAN_PREFIX
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    使用すべきではありません。
    6.1 以降、initializeBean(Object, String) による暗黙的な後処理を推奨
    使用すべきではありません。
    6.1 以降、initializeBean(Object, String) による暗黙的な後処理を推奨
    void
    applyBeanPropertyValues(ObjectSE existingBean, StringSE beanName)
    指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。
    autowire(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck)
    指定された autowire 戦略を使用して、指定されたクラスの新しい Bean インスタンスをインスタンス化します。
    void
    autowireBean(ObjectSE existingBean)
    インスタンス化後のコールバックと Bean プロパティの後処理を適用して、指定された Bean インスタンスにデータを入力します(例:
    void
    autowireBeanProperties(ObjectSE existingBean, int autowireMode, boolean dependencyCheck)
    指定された Bean インスタンスの Bean プロパティを名前または型でオートワイヤーします。
    configureBean(ObjectSE existingBean, StringSE beanName)
    指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、setBeanName や setBeanFactory などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。
    createBean(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck)
    使用すべきではありません。
    6.1 現在、createBean(Class) を推奨
    <T> T
    createBean(ClassSE<T> beanClass)
    指定されたクラスの新しい Bean インスタンスを完全に作成します。
    void
    destroyBean(ObjectSE existingBean)
    指定された Bean インスタンス(通常 createBean(Class) から取得)を破棄し、DisposableBean 契約と登録済み DestructionAwareBeanPostProcessors を適用します。
    initializeBean(ObjectSE existingBean, StringSE beanName)
    setBeanName や setBeanFactory などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。
    指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。
    resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName)
    このファクトリで定義された Bean に対する指定された依存関係を解決します。
    resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter)
    このファクトリで定義された Bean に対する指定された依存関係を解決します。
    resolveNamedBean(ClassSE<T> requiredType)
    指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。

    インターフェース org.springframework.beans.factory.BeanFactory から継承されたメソッド

    containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
  • フィールドの詳細

  • メソッドの詳細

    • createBean

      <T> T createBean(ClassSE<T> beanClass) throws BeansException
      指定されたクラスの新しい Bean インスタンスを完全に作成します。

      適用可能なすべての BeanPostProcessors を含む、Bean の完全な初期化を実行します。

      メモ: これは、新しいインスタンスを作成し、アノテーション付きのフィールドとメソッドを設定し、すべての標準 Bean 初期化コールバックを適用することを目的としています。コンストラクターの解決は、Kotlin プライマリ / 単一のパブリック / 単一の非パブリックに基づいており、あいまいなシナリオではデフォルトのコンストラクターにフォールバックし、SmartInstantiationAwareBeanPostProcessor.determineCandidateConstructors(java.lang.Class<?>, java.lang.String) の影響も受けます (例: アノテーション駆動型のコンストラクターの選択)。

      パラメーター:
      beanClass - 作成する Bean のクラス
      戻り値:
      新しい Bean インスタンス
      例外:
      BeansException - インスタンス化または接続が失敗した場合
    • autowireBean

      void autowireBean(ObjectSE existingBean) throws BeansException
      インスタンス化後のコールバックと Bean プロパティの後処理を適用することにより、指定された Bean インスタンスを生成します(例: アノテーション駆動型インジェクション用)。

      メモ: これは基本的に、新しいインスタンスまたは非直列化されたインスタンスのいずれかのために、アノテーション付きのフィールドとメソッドを(再)入力することを目的としています。これは 従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありませ。これらの目的には autowireBeanProperties(java.lang.Object, int, boolean) を使用してください。

      パラメーター:
      existingBean - 既存の Bean インスタンス
      例外:
      BeansException - 接続に失敗した場合
    • configureBean

      ObjectSE configureBean(ObjectSE existingBean, StringSE beanName) throws BeansException
      指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、setBeanName や setBeanFactory などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。

      これは実質的に initializeBean(java.lang.Object, java.lang.String) が提供するもののスーパーセットであり、対応する Bean 定義で指定された構成を完全に適用します。 注: このメソッドには、指定された名前の Bean 定義が必要です!

      パラメーター:
      existingBean - 既存の Bean インスタンス
      beanName - Bean の名前、必要に応じて渡される (その名前の Bean 定義が利用可能でなければなりません)
      戻り値:
      使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean 定義がない場合
      BeansException - 初期化が失敗した場合
      関連事項:
    • createBean

      @DeprecatedSE(since="6.1") ObjectSE createBean(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException
      使用すべきではありません。
      6.1 現在、createBean(Class) を推奨
      指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい Bean インスタンスを完全に作成します。このインターフェースで定義されているすべての定数は、ここでサポートされています。

      適用可能なすべての BeanPostProcessors を含む、Bean の完全な初期化を実行します。これは事実上、autowire(java.lang.Class<?>, int, boolean) が提供するもののスーパーセットであり、initializeBean(java.lang.Object, java.lang.String) の動作を追加します。

      パラメーター:
      beanClass - 作成する Bean のクラス
      autowireMode - このインターフェースの定数を使用して、名前または型
      dependencyCheck - オブジェクトの依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)
      戻り値:
      新しい Bean インスタンス
      例外:
      BeansException - インスタンス化または接続が失敗した場合
      関連事項:
    • autowire

      ObjectSE autowire(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException
      指定された autowire 戦略を使用して、指定されたクラスの新しい Bean インスタンスをインスタンス化します。このインターフェースで定義されているすべての定数はここでサポートされています。インスタンス化前のコールバックだけを適用するために、AUTOWIRE_NO で呼び出すこともできます(たとえば、アノテーション駆動型の注入)。

      標準の BeanPostProcessors コールバックを適用せ、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえば initializeBean(java.lang.Object, java.lang.String) のような、きめ細かい操作を提供します。ただし、インスタンスの構築に適用可能な場合は、InstantiationAwareBeanPostProcessor コールバックが適用されます。

      パラメーター:
      beanClass - インスタンス化する Bean のクラス
      autowireMode - このインターフェースの定数を使用して、名前または型
      dependencyCheck - Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)
      戻り値:
      新しい Bean インスタンス
      例外:
      BeansException - インスタンス化または接続が失敗した場合
      関連事項:
    • autowireBeanProperties

      void autowireBeanProperties(ObjectSE existingBean, int autowireMode, boolean dependencyCheck) throws BeansException
      指定された Bean インスタンスの Bean プロパティを名前または型でオートワイヤーします。インスタンス化後のコールバックを適用するためだけに AUTOWIRE_NO で呼び出すこともできます(例: アノテーション駆動型の注入)。

      標準の BeanPostProcessors コールバックを適用せ、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえば initializeBean(java.lang.Object, java.lang.String) のような、きめ細かい操作を提供します。ただし、インスタンスの構成に該当する場合は、InstantiationAwareBeanPostProcessor コールバックが適用されます。

      パラメーター:
      existingBean - 既存の Bean インスタンス
      autowireMode - このインターフェースの定数を使用して、名前または型
      dependencyCheck - Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか
      例外:
      BeansException - 接続に失敗した場合
      関連事項:
    • applyBeanPropertyValues

      void applyBeanPropertyValues(ObjectSE existingBean, StringSE beanName) throws BeansException
      指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。Bean 定義は、完全に自己完結型の Bean を定義して、そのプロパティ値を再利用するか、既存の Bean インスタンスに使用することを意図したプロパティ値のみを定義できます。

      このメソッドは Bean プロパティをオートワイヤーしませ。明示的に定義されたプロパティ値を適用するだけです。autowireBeanProperties(java.lang.Object, int, boolean) メソッドを使用して、既存の Bean インスタンスをオートワイヤーします。 注: このメソッドには、指定された名前の Bean 定義が必要です!

      標準の BeanPostProcessors コールバックを適用せ、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえば initializeBean(java.lang.Object, java.lang.String) のような、きめ細かい操作を提供します。ただし、インスタンスの構成に該当する場合は、InstantiationAwareBeanPostProcessor コールバックが適用されます。

      パラメーター:
      existingBean - 既存の Bean インスタンス
      beanName - Bean ファクトリ内の Bean 定義の名前 (その名前の Bean 定義が利用可能でなければなりません)
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean 定義がない場合
      BeansException - プロパティ値の適用に失敗した場合
      関連事項:
    • initializeBean

      ObjectSE initializeBean(ObjectSE existingBean, StringSE beanName) throws BeansException
      setBeanName や setBeanFactory などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。

      指定された名前の Bean 定義が Bean ファクトリに存在する必要はないことに注意してください。渡された Bean 名は単にコールバックに使用されますが、登録された Bean 定義に対してはチェックされません。

      パラメーター:
      existingBean - 既存の Bean インスタンス
      beanName - Bean の名前、必要に応じて渡される (BeanPostProcessors にのみ渡されます。指定されたインスタンスを強制的に返すために ORIGINAL_INSTANCE_SUFFIX 規則に従うことができます。つまり、プロキシなどはありません。)
      戻り値:
      使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
      例外:
      BeansException - 初期化が失敗した場合
      関連事項:
    • applyBeanPostProcessorsBeforeInitialization

      @DeprecatedSE(since="6.1") ObjectSE applyBeanPostProcessorsBeforeInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException
      使用すべきではありません。
      6.1 以降、initializeBean(Object, String) による暗黙的な後処理を推奨
      指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessBeforeInitialization メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。
      パラメーター:
      existingBean - 既存の Bean インスタンス
      beanName - Bean の名前、必要に応じて渡される (BeanPostProcessors にのみ渡されます。指定されたインスタンスを強制的に返すために ORIGINAL_INSTANCE_SUFFIX 規則に従うことができます。つまり、プロキシなどはありません。)
      戻り値:
      使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
      例外:
      BeansException - 後処理が失敗した場合
      関連事項:
    • applyBeanPostProcessorsAfterInitialization

      @DeprecatedSE(since="6.1") ObjectSE applyBeanPostProcessorsAfterInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException
      使用すべきではありません。
      6.1 以降、initializeBean(Object, String) による暗黙的な後処理を推奨
      指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessAfterInitialization メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。
      パラメーター:
      existingBean - 既存の Bean インスタンス
      beanName - Bean の名前、必要に応じて渡される (BeanPostProcessors にのみ渡されます。指定されたインスタンスを強制的に返すために ORIGINAL_INSTANCE_SUFFIX 規則に従うことができます。つまり、プロキシなどはありません。)
      戻り値:
      使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
      例外:
      BeansException - 後処理が失敗した場合
      関連事項:
    • destroyBean

      void destroyBean(ObjectSE existingBean)
      指定された Bean インスタンス(通常 createBean(Class) から取得)を破棄し、DisposableBean 契約と登録済み DestructionAwareBeanPostProcessors を適用します。

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

      パラメーター:
      existingBean - 破棄する Bean インスタンス
    • resolveNamedBean

      <T> NamedBeanHolder<T> resolveNamedBean(ClassSE<T> requiredType) throws BeansException
      指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。

      これは事実上、一致するインスタンスの Bean 名を保持する BeanFactory.getBean(Class) のバリアントです。

      パラメーター:
      requiredType - Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます
      戻り値:
      Bean 名と Bean インスタンス
      例外:
      NoSuchBeanDefinitionException - 一致する Bean が見つからなかった場合
      NoUniqueBeanDefinitionException - 一致する Bean が複数見つかった場合
      BeansException - Bean を作成できなかった場合
      導入:
      4.3.3
      関連事項:
    • resolveBeanByName

      ObjectSE resolveBeanByName(StringSE name, DependencyDescriptor descriptor) throws BeansException
      指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。

      これは事実上、InjectionPoint 引数を持つファクトリメソッドをサポートする BeanFactory.getBean(String, Class) のバリアントです。

      パラメーター:
      name - 検索する Bean の名前
      descriptor - リクエストしているインジェクションポイントの依存性記述子
      戻り値:
      対応する Bean インスタンス
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      BeansException - Bean を作成できなかった場合
      導入:
      5.1.5
      関連事項:
    • resolveDependency

      @Nullable ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName) throws BeansException
      このファクトリで定義された Bean に対する指定された依存関係を解決します。
      パラメーター:
      descriptor - 依存関係の記述子 (フィールド / メソッド / コンストラクター)
      requestingBeanName - 指定された依存関係を宣言する Bean の名前
      戻り値:
      解決されたオブジェクト。見つからない場合は null 
      例外:
      NoSuchBeanDefinitionException - 一致する Bean が見つからなかった場合
      NoUniqueBeanDefinitionException - 一致する Bean が複数見つかった場合
      BeansException - 他の理由で依存関係の解決に失敗した場合
      導入:
      2.5
      関連事項:
    • resolveDependency

      @Nullable ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName, @Nullable SetSE<StringSE> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException
      このファクトリで定義された Bean に対する指定された依存関係を解決します。
      パラメーター:
      descriptor - 依存関係の記述子 (フィールド / メソッド / コンストラクター)
      requestingBeanName - 指定された依存関係を宣言する Bean の名前
      autowiredBeanNames - (特定の依存関係の解決に使用される)オートワイヤーされた Bean のすべての名前が追加されることになっているセット
      typeConverter - 配列とコレクションの移植に使用する TypeConverter
      戻り値:
      解決されたオブジェクト。見つからない場合は null 
      例外:
      NoSuchBeanDefinitionException - 一致する Bean が見つからなかった場合
      NoUniqueBeanDefinitionException - 一致する Bean が複数見つかった場合
      BeansException - 他の理由で依存関係の解決に失敗した場合
      導入:
      2.5
      関連事項: