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 外部で定義されたオートワイヤーがないことを示す定数。 |
static StringSE | ORIGINAL_INSTANCE_SUFFIX 既存の Bean インスタンスを初期化するときの「元のインスタンス」規則の接尾辞: 完全修飾された Bean クラス名に追加されます。 |
FACTORY_BEAN_PREFIX
修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | applyBeanPostProcessorsAfterInitialization(ObjectSE existingBean, StringSE beanName) 指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessAfterInitialization メソッドを呼び出します。 |
ObjectSE | applyBeanPostProcessorsBeforeInitialization(ObjectSE existingBean, StringSE beanName) 指定された既存の Bean インスタンスに BeanPostProcessors を適用し、postProcessBeforeInitialization メソッドを呼び出します。 |
void | applyBeanPropertyValues(ObjectSE existingBean, StringSE beanName) 指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。 |
ObjectSE | 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 プロパティを名前または型でオートワイヤーします。 |
ObjectSE | configureBean(ObjectSE existingBean, StringSE beanName) 指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、 setBeanName や setBeanFactory などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。 |
ObjectSE | createBean(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) 指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい Bean インスタンスを完全に作成します。 |
<T> T | createBean(ClassSE<T> beanClass) 指定されたクラスの新しい Bean インスタンスを完全に作成します。 |
void | destroyBean(ObjectSE existingBean) 指定された Bean インスタンス(通常 createBean(java.lang.Class<T>) から取得)を破棄し、DisposableBean 契約と登録済み DestructionAwareBeanPostProcessors を適用します。 |
ObjectSE | initializeBean(ObjectSE existingBean, StringSE beanName) setBeanName や setBeanFactory などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。 |
ObjectSE | resolveBeanByName(StringSE name, DependencyDescriptor descriptor) 指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。 |
ObjectSE | resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName) このファクトリで定義された Bean に対する指定された依存関係を解決します。 |
ObjectSE | resolveDependency(DependencyDescriptor descriptor, StringSE requestingBeanName, SetSE<StringSE> autowiredBeanNames, TypeConverter typeConverter) このファクトリで定義された Bean に対する指定された依存関係を解決します。 |
<T> NamedBeanHolder<T> | resolveNamedBean(ClassSE<T> requiredType) 指定されたオブジェクト型(存在する場合)に一意に一致する Bean インスタンスを、その Bean 名を含めて解決します。 |
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, 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
@DeprecatedSE static final int AUTOWIRE_AUTODETECT
static final StringSE ORIGINAL_INSTANCE_SUFFIX
<T> T createBean(ClassSE<T> beanClass) throws BeansException
適用可能なすべての BeanPostProcessors
を含む、Bean の完全な初期化を実行します。
メモ: これは、新しいインスタンスを作成し、アノテーション付きのフィールドとメソッドを設定し、すべての標準 Bean 初期化コールバックを適用することを目的としています。これは 、従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありません。これらの目的には createBean(Class, int, boolean)
を使用してください。
beanClass
- 作成する Bean のクラス BeansException
- インスタンス化または接続が失敗した場合 void autowireBean(ObjectSE existingBean) throws BeansException
メモ: これは基本的に、新しいインスタンスまたは非直列化されたインスタンスのいずれかのために、アノテーション付きのフィールドとメソッドを(再)入力することを目的としています。これは 、従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありません。これらの目的には autowireBeanProperties(java.lang.Object, int, boolean)
を使用してください。
existingBean
- 既存の Bean インスタンス BeansException
- 接続に失敗した場合 ObjectSE configureBean(ObjectSE existingBean, StringSE 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)
ObjectSE createBean(ClassSE<?> 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
ObjectSE autowire(ClassSE<?> 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(ObjectSE 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(ObjectSE existingBean, StringSE 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)
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
規則に従うことができます。つまり、プロキシなどはありません。)BeansException
- 初期化が失敗した場合 ORIGINAL_INSTANCE_SUFFIX
ObjectSE applyBeanPostProcessorsBeforeInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException
BeanPostProcessors
を適用し、postProcessBeforeInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。existingBean
- 既存の Bean インスタンス beanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡されます。指定されたインスタンスを強制的に返すために ORIGINAL_INSTANCE_SUFFIX
規則に従うことができます。つまり、プロキシなどはありません。)BeansException
- 後処理が失敗した場合 BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)
, ORIGINAL_INSTANCE_SUFFIX
ObjectSE applyBeanPostProcessorsAfterInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException
BeanPostProcessors
を適用し、postProcessAfterInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。existingBean
- 既存の Bean インスタンス beanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡されます。指定されたインスタンスを強制的に返すために ORIGINAL_INSTANCE_SUFFIX
規則に従うことができます。つまり、プロキシなどはありません。)BeansException
- 後処理が失敗した場合 BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
, ORIGINAL_INSTANCE_SUFFIX
void destroyBean(ObjectSE existingBean)
createBean(java.lang.Class<T>)
から取得)を破棄し、DisposableBean
契約と登録済み DestructionAwareBeanPostProcessors
を適用します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
existingBean
- 破棄する Bean インスタンス <T> NamedBeanHolder<T> resolveNamedBean(ClassSE<T> requiredType) throws BeansException
これは事実上、一致するインスタンスの Bean 名を保持する BeanFactory.getBean(Class)
のバリアントです。
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- Bean を作成できなかった場合 BeanFactory.getBean(Class)
ObjectSE resolveBeanByName(StringSE name, DependencyDescriptor descriptor) throws BeansException
これは事実上、InjectionPoint
引数を持つファクトリメソッドをサポートする BeanFactory.getBean(String, Class)
のバリアントです。
name
- 検索する Bean の名前 descriptor
- リクエストしているインジェクションポイントの依存性記述子 NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeansException
- Bean を作成できなかった場合 BeanFactory.getBean(String, Class)
@Nullable ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName) throws BeansException
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 null
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 resolveDependency(DependencyDescriptor, String, Set, TypeConverter)
@Nullable ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName, @Nullable SetSE<StringSE> autowiredBeanNames, @Nullable TypeConverter typeConverter) throws BeansException
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前 autowiredBeanNames
- (特定の依存関係の解決に使用される)オートワイヤーされた Bean のすべての名前が追加されることになっているセット typeConverter
- 配列とコレクションの移植に使用する TypeConverternull
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合 BeansException
- 他の理由で依存関係の解決に失敗した場合 DependencyDescriptor