インターフェース AutowireCapableBeanFactory
- すべてのスーパーインターフェース:
BeanFactory
- すべての既知のサブインターフェース:
ConfigurableListableBeanFactory
- すべての既知の実装クラス:
AbstractAutowireCapableBeanFactory
,DefaultListableBeanFactory
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 クラス名 (例: "com.mypackage.MyClass.ORIGINAL" ) に追加されます。インターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX
方法の概要
修飾子と型メソッド説明applyBeanPostProcessorsAfterInitialization
(ObjectSE existingBean, StringSE beanName) 使用すべきではありません。6.1 以降、initializeBean(Object, String)
による暗黙的な後処理を推奨applyBeanPostProcessorsBeforeInitialization
(ObjectSE existingBean, StringSE beanName) 使用すべきではありません。6.1 以降、initializeBean(Object, String)
による暗黙的な後処理を推奨void
applyBeanPropertyValues
(ObjectSE existingBean, StringSE beanName) 指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。指定された 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 を初期化します。resolveBeanByName
(StringSE name, DependencyDescriptor descriptor) 指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。resolveDependency
(DependencyDescriptor descriptor, StringSE requestingBeanName) このファクトリで定義された Bean に対する指定された依存関係を解決します。resolveDependency
(DependencyDescriptor descriptor, StringSE requestingBeanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) このファクトリで定義された Bean に対する指定された依存関係を解決します。<T> NamedBeanHolder<T>
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
フィールドの詳細
AUTOWIRE_NO
static final int AUTOWIRE_NO外部で定義されたオートワイヤーがないことを示す定数。BeanFactoryAware などおよびアノテーション駆動型の注入が引き続き適用されることに注意してください。AUTOWIRE_BY_NAME
static final int AUTOWIRE_BY_NAMEBean プロパティのオートワイヤーを名前で示す定数(すべての Bean プロパティ setter に適用)。AUTOWIRE_BY_TYPE
static final int AUTOWIRE_BY_TYPE型ごとの Bean プロパティのオートワイヤーを示す定数(すべての Bean プロパティ setter に適用)。AUTOWIRE_CONSTRUCTOR
static final int AUTOWIRE_CONSTRUCTOR満たすことができる最も貪欲なコンストラクターをオートワイヤーすることを示す定数(適切なコンストラクターの解決を含む)。AUTOWIRE_AUTODETECT
使用すべきではありません。Spring 3.0 以降: 混合オートワイヤー戦略を使用している場合は、オートワイヤーのニーズを明確に区別するために、アノテーションベースのオートワイヤーをお勧めします。Bean クラスのイントロスペクションを介して適切なオートワイヤー戦略を決定することを示す定数。ORIGINAL_INSTANCE_SUFFIX
既存の Bean インスタンスを初期化するときの「元のインスタンス」規則のサフィックス。指定されたインスタンスが返されるように強制するため、つまりプロキシなどがないようにするために、完全修飾 Bean クラス名 (例: "com.mypackage.MyClass.ORIGINAL" ) に追加されます。
メソッドの詳細
createBean
指定されたクラスの新しい Bean インスタンスを完全に作成します。適用可能なすべての
BeanPostProcessors
を含む、Bean の完全な初期化を実行します。メモ: これは、新しいインスタンスを作成し、アノテーション付きのフィールドとメソッドを設定し、すべての標準 Bean 初期化コールバックを適用することを目的としています。コンストラクターの解決は、Kotlin プライマリ / 単一のパブリック / 単一の非パブリックに基づいており、あいまいなシナリオではデフォルトコンストラクターにフォールバックし、
SmartInstantiationAwareBeanPostProcessor.determineCandidateConstructors(java.lang.Class<?>, java.lang.String)
の影響も受けます (たとえば、アノテーション駆動型のコンストラクターの選択)。- パラメーター:
beanClass
- 作成する Bean のクラス- 戻り値:
- 新しい Bean インスタンス
- 例外:
BeansException
- インスタンス化または接続が失敗した場合
autowireBean
インスタンス化後のコールバックと Bean プロパティの後処理 (たとえば、アノテーション駆動型インジェクション) を適用して、指定された Bean インスタンスを設定します。メモ: これは基本的に、新しいインスタンスまたは非直列化されたインスタンスのいずれかのために、アノテーション付きのフィールドとメソッドを(再)入力することを目的としています。これは 、従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありません。これらの目的には
autowireBeanProperties(java.lang.Object, int, boolean)
を使用してください。- パラメーター:
existingBean
- 既存の Bean インスタンス- 例外:
BeansException
- 接続に失敗した場合
configureBean
指定された生の 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 指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい 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
指定された名前の 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
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
指定された Bean インスタンス(通常createBean(Class)
から取得)を破棄し、DisposableBean
契約と登録済みDestructionAwareBeanPostProcessors
を適用します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
- パラメーター:
existingBean
- 破棄する Bean インスタンス
resolveNamedBean
指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。これは事実上、一致するインスタンスの Bean 名を保持する
BeanFactory.getBean(Class)
のバリアントです。- パラメーター:
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます- 戻り値:
- Bean 名と Bean インスタンス
- 例外:
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合BeansException
- Bean を作成できなかった場合- 導入:
- 4.3.3
- 関連事項:
resolveBeanByName
指定された 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
- 関連事項: