public interface AutowireCapableBeanFactory extends BeanFactory
BeanFactory
インターフェースの拡張。BeanFactory のこのサブインターフェースは、通常のアプリケーションコードで使用することを意図したものではありません。典型的なユースケースでは BeanFactory
または ListableBeanFactory
を使用してください。
他のフレームワークの統合コードは、このインターフェースを活用して、Spring がライフサイクルを制御しない既存の Bean インスタンスを接続および移植できます。これは、たとえば、WebWork アクションおよび Tapestry ページオブジェクトなどで特に役立ちます。
このインターフェースは、アプリケーションコードではほとんど使用されないため、ApplicationContext
ファサードでは実装されないことに注意してください。ただし、ApplicationContext の ApplicationContext.getAutowireCapableBeanFactory()
メソッドを介してアクセス可能なアプリケーションコンテキストからも利用できます。
また、ApplicationContext で実行している場合でも内部 BeanFactory を公開する BeanFactoryAware
インターフェースを実装して、AutowireCapableBeanFactory にアクセスできます。渡された BeanFactory を AutowireCapableBeanFactory にキャストするだけです。
BeanFactoryAware
, ConfigurableListableBeanFactory
, ApplicationContext.getAutowireCapableBeanFactory()
修飾子と型 | フィールドと説明 |
---|---|
static int | AUTOWIRE_AUTODETECT 使用すべきではありません。 Spring 3.0 以降: 混合オートワイヤー戦略を使用している場合は、オートワイヤーのニーズを明確に区別するために、アノテーションベースのオートワイヤーをお勧めします。 |
static int | AUTOWIRE_BY_NAME Bean プロパティのオートワイヤーを名前で示す定数(すべての Bean プロパティ setter に適用)。 |
static int | AUTOWIRE_BY_TYPE 型ごとの Bean プロパティのオートワイヤーを示す定数(すべての Bean プロパティ setter に適用)。 |
static int | AUTOWIRE_CONSTRUCTOR 満たすことができる最も貪欲なコンストラクターをオートワイヤーすることを示す定数(適切なコンストラクターの解決を含む)。 |
static int | AUTOWIRE_NO 外部で定義されたオートワイヤーがないことを示す定数。 |
FACTORY_BEAN_PREFIX
修飾子と型 | メソッドと説明 |
---|---|
java.lang.Object | applyBeanPostProcessorsAfterInitialization(java.lang.Object existingBean, java.lang.String beanName) 指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessAfterInitialization メソッドを呼び出します。 |
java.lang.Object | applyBeanPostProcessorsBeforeInitialization(java.lang.Object existingBean, java.lang.String beanName) 指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessBeforeInitialization メソッドを呼び出します。 |
void | applyBeanPropertyValues(java.lang.Object existingBean, java.lang.String beanName) 指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。 |
java.lang.Object | autowire(java.lang.Class<?> beanClass, int autowireMode, boolean dependencyCheck) 指定された autowire 戦略を使用して、指定されたクラスの新しい Bean インスタンスをインスタンス化します。 |
void | autowireBean(java.lang.Object existingBean) インスタンス化後のコールバックと Bean プロパティの後処理を適用して、指定された Bean インスタンスにデータを入力します(例: |
void | autowireBeanProperties(java.lang.Object existingBean, int autowireMode, boolean dependencyCheck) 指定された Bean インスタンスの Bean プロパティを名前または型でオートワイヤーします。 |
java.lang.Object | configureBean(java.lang.Object existingBean, java.lang.String beanName) 指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、 setBeanName や setBeanFactory などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。 |
java.lang.Object | createBean(java.lang.Class<?> beanClass, int autowireMode, boolean dependencyCheck) 指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい Bean インスタンスを完全に作成します。 |
<T> T | createBean(java.lang.Class<T> beanClass) 指定されたクラスの新しい Bean インスタンスを完全に作成します。 |
void | destroyBean(java.lang.Object existingBean) 指定された Bean インスタンス(通常 createBean(java.lang.Class<T>) から取得)を破棄し、DisposableBean 契約と登録済み DestructionAwareBeanPostProcessors を適用します。 |
java.lang.Object | initializeBean(java.lang.Object existingBean, java.lang.String beanName) setBeanName や setBeanFactory などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。 |
java.lang.Object | resolveDependency(DependencyDescriptor descriptor, java.lang.String requestingBeanName) このファクトリで定義された Bean に対する指定された依存関係を解決します。 |
java.lang.Object | resolveDependency(DependencyDescriptor descriptor, java.lang.String requestingBeanName, java.util.Set<java.lang.String> autowiredBeanNames, TypeConverter typeConverter) このファクトリで定義された Bean に対する指定された依存関係を解決します。 |
<T> NamedBeanHolder<T> | resolveNamedBean(java.lang.Class<T> requiredType) 指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。 |
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
static final int AUTOWIRE_NO
static final int AUTOWIRE_BY_NAME
static final int AUTOWIRE_BY_TYPE
static final int AUTOWIRE_CONSTRUCTOR
@Deprecated static final int AUTOWIRE_AUTODETECT
<T> T createBean(java.lang.Class<T> beanClass) throws BeansException
適用可能なすべての BeanPostProcessors
を含む、Bean の完全な初期化を実行します。
メモ: これは、新しいインスタンスを作成し、アノテーション付きのフィールドとメソッドを設定し、すべての標準 Bean 初期化コールバックを適用することを目的としています。そうではありません > 従来の名前別または型別のプロパティのオートワイヤーを暗示します。それらの目的には createBean(Class, int, boolean)
を使用してください。
beanClass
- 作成する Bean のクラス BeansException
- インスタンス化または接続が失敗した場合 void autowireBean(java.lang.Object existingBean) throws BeansException
メモ: これは基本的に、新しいインスタンスまたは非直列化されたインスタンスのいずれかのために、アノテーション付きのフィールドとメソッドを(再)入力することを目的としています。これは 、従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありません。これらの目的には autowireBeanProperties(java.lang.Object, int, boolean)
を使用してください。
existingBean
- 既存の Bean インスタンス BeansException
- 接続に失敗した場合 java.lang.Object configureBean(java.lang.Object existingBean, java.lang.String beanName) throws BeansException
setBeanName
や setBeanFactory
などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。 これは実質的に initializeBean(java.lang.Object, java.lang.String)
が提供するもののスーパーセットであり、対応する Bean 定義で指定された構成を完全に適用します。 注: このメソッドには、指定された名前の Bean 定義が必要です!
existingBean
- 既存の Bean インスタンス beanName
- Bean の名前、必要に応じて渡される (その名前の Bean 定義が利用可能でなければなりません)NoSuchBeanDefinitionException
- 指定された名前の Bean 定義がない場合 BeansException
- 初期化が失敗した場合 initializeBean(java.lang.Object, java.lang.String)
java.lang.Object createBean(java.lang.Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException
適用可能なすべての BeanPostProcessors
を含む、Bean の完全な初期化を実行します。これは事実上、autowire(java.lang.Class<?>, int, boolean)
が提供するもののスーパーセットであり、initializeBean(java.lang.Object, java.lang.String)
の動作を追加します。
beanClass
- 作成する Bean のクラス autowireMode
- このインターフェースの定数を使用して、名前または型 dependencyCheck
- オブジェクトの依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)BeansException
- インスタンス化または接続が失敗した場合 AUTOWIRE_NO
, AUTOWIRE_BY_NAME
, AUTOWIRE_BY_TYPE
, AUTOWIRE_CONSTRUCTOR
java.lang.Object autowire(java.lang.Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException
AUTOWIRE_NO
で呼び出すこともできます(たとえば、アノテーション駆動型の注入)。 標準の BeanPostProcessors
コールバックを適用せず、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえば initializeBean(java.lang.Object, java.lang.String)
のような、きめ細かい操作を提供します。ただし、インスタンスの構築に適用可能な場合は、InstantiationAwareBeanPostProcessor
コールバックが適用されます。
beanClass
- インスタンス化する Bean のクラス autowireMode
- このインターフェースの定数を使用して、名前または型 dependencyCheck
- Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)BeansException
- インスタンス化または接続が失敗した場合 AUTOWIRE_NO
, AUTOWIRE_BY_NAME
, AUTOWIRE_BY_TYPE
, AUTOWIRE_CONSTRUCTOR
, AUTOWIRE_AUTODETECT
, initializeBean(java.lang.Object, java.lang.String)
, applyBeanPostProcessorsBeforeInitialization(java.lang.Object, java.lang.String)
, applyBeanPostProcessorsAfterInitialization(java.lang.Object, java.lang.String)
void autowireBeanProperties(java.lang.Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException
AUTOWIRE_NO
で呼び出すこともできます(例: アノテーション駆動型の注入)。 標準の BeanPostProcessors
コールバックを適用せず、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえば initializeBean(java.lang.Object, java.lang.String)
のような、きめ細かい操作を提供します。ただし、インスタンスの構成に該当する場合は、InstantiationAwareBeanPostProcessor
コールバックが適用されます。
existingBean
- 既存の Bean インスタンス autowireMode
- このインターフェースの定数を使用して、名前または型 dependencyCheck
- Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか BeansException
- 接続に失敗した場合 AUTOWIRE_BY_NAME
, AUTOWIRE_BY_TYPE
, AUTOWIRE_NO
void applyBeanPropertyValues(java.lang.Object existingBean, java.lang.String beanName) throws BeansException
このメソッドは 、 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
- プロパティ値の適用に失敗した場合 autowireBeanProperties(java.lang.Object, int, boolean)
java.lang.Object initializeBean(java.lang.Object existingBean, java.lang.String beanName) throws BeansException
setBeanName
や setBeanFactory
などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。指定された名前の Bean 定義が Bean ファクトリに存在する必要はないことに注意してください。渡された Bean 名は単にコールバックに使用されますが、登録された Bean 定義に対してはチェックされません。
existingBean
- 既存の Bean インスタンス beanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡される)BeansException
- 初期化が失敗した場合 java.lang.Object applyBeanPostProcessorsBeforeInitialization(java.lang.Object existingBean, java.lang.String beanName) throws BeansException
BeanPostProcessors
を適用し、postProcessBeforeInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。existingBean
- 新しい Bean インスタンス beanName
- Bean の名前 BeansException
- 後処理が失敗した場合 BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)
java.lang.Object applyBeanPostProcessorsAfterInitialization(java.lang.Object existingBean, java.lang.String beanName) throws BeansException
BeanPostProcessors
を適用し、postProcessAfterInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。existingBean
- 新しい Bean インスタンス beanName
- Bean の名前 BeansException
- 後処理が失敗した場合 BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
void destroyBean(java.lang.Object existingBean)
createBean(java.lang.Class<T>)
から取得)を破棄し、DisposableBean
契約と登録済み DestructionAwareBeanPostProcessors
を適用します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
existingBean
- 破棄する Bean インスタンス <T> NamedBeanHolder<T> resolveNamedBean(java.lang.Class<T> requiredType) throws BeansException
これは事実上、一致するインスタンスの Bean 名を保持する BeanFactory.getBean(Class)
のバリアントです。
requiredType
- Bean が一致する必要がある型。インターフェースまたはスーパークラスにすることができます。null
は許可されていません。NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- Bean を作成できなかった場合 BeanFactory.getBean(Class)
java.lang.Object resolveDependency(DependencyDescriptor descriptor, java.lang.String requestingBeanName) throws BeansException
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 null
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 resolveDependency(DependencyDescriptor, String, Set, TypeConverter)
java.lang.Object resolveDependency(DependencyDescriptor descriptor, java.lang.String requestingBeanName, java.util.Set<java.lang.String> autowiredBeanNames, TypeConverter typeConverter) throws BeansException
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 autowiredBeanNames
- (特定の依存関係の解決に使用される)オートワイヤーされた Bean のすべての名前が追加されることになっているセット typeConverter
- 配列とコレクションの移植に使用する TypeConverternull
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 DependencyDescriptor