インターフェース SmartInstantiationAwareBeanPostProcessor
- すべてのスーパーインターフェース:
BeanPostProcessor,InstantiationAwareBeanPostProcessor
- すべての既知の実装クラス:
AbstractAdvisingBeanPostProcessor、AbstractAdvisorAutoProxyCreator、AbstractAutoProxyCreator、AbstractBeanFactoryAwareAdvisingPostProcessor、AnnotationAwareAspectJAutoProxyCreator、AspectJAwareAdvisorAutoProxyCreator、AsyncAnnotationBeanPostProcessor、AutowiredAnnotationBeanPostProcessor、BeanNameAutoProxyCreator、DefaultAdvisorAutoProxyCreator、InfrastructureAdvisorAutoProxyCreator、MethodValidationPostProcessor、PersistenceExceptionTranslationPostProcessor、ScriptFactoryPostProcessor
InstantiationAwareBeanPostProcessor インターフェースの拡張。処理された Bean の最終的な型を予測するためのコールバックを追加します。 注意 : このインターフェースは、主にフレームワーク内での内部使用のための特別な目的のインターフェースです。一般に、アプリケーション提供のポストプロセッサーは単純な BeanPostProcessor インターフェースを実装する必要があります。
- 導入:
- 2.0.3
- 作成者:
- Juergen Hoeller
メソッドのサマリー
修飾子と型メソッド説明default ClassSE<?>determineBeanType(ClassSE<?> beanClass, StringSE beanName) このプロセッサーのInstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)コールバックから最終的に返される Bean の型を決定します。default ConstructorSE<?>[]determineCandidateConstructors(ClassSE<?> beanClass, StringSE beanName) 指定された Bean に使用する候補コンストラクターを決定します。default ObjectSEgetEarlyBeanReference(ObjectSE bean, StringSE beanName) 通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。default ClassSE<?>predictBeanType(ClassSE<?> beanClass, StringSE beanName) 最終的にこのプロセッサーのInstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)コールバックから返される Bean の型を予測します。インターフェース org.springframework.beans.factory.config.BeanPostProcessor から継承されたメソッド
postProcessAfterInitialization, postProcessBeforeInitializationインターフェース org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor から継承されたメソッド
postProcessAfterInstantiation, postProcessBeforeInstantiation, postProcessProperties
メソッドの詳細
predictBeanType
@Nullable default ClassSE<?> predictBeanType(ClassSE<?> beanClass, StringSE beanName) throws BeansException 最終的にこのプロセッサーのInstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)コールバックから返される Bean の型を予測します。デフォルトの実装は
nullを返します。特定の実装では、追加の処理手順を実行せずに、既知 / キャッシュされている限り、Bean 型を予測しようとする必要があります。- パラメーター:
beanClass- Bean の生のクラスbeanName- Bean の名前- 戻り値:
- Bean の型、または予測できない場合は
null - 例外:
BeansException- エラーの場合
determineBeanType
このプロセッサーのInstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)コールバックから最終的に返される Bean の型を決定します。デフォルトの実装は、指定された Bean クラスをそのまま返します。特定の実装では、事前に潜在的なプロキシクラスを作成 / 初期化するために、処理手順を完全に評価する必要があります。
- パラメーター:
beanClass- Bean の生のクラスbeanName- Bean の名前- 戻り値:
- Bean の型 (非
null) - 例外:
BeansException- エラーの場合- 導入:
- 6.0
determineCandidateConstructors
@Nullable default ConstructorSE<?>[] determineCandidateConstructors(ClassSE<?> beanClass, StringSE beanName) throws BeansException 指定された Bean に使用する候補コンストラクターを決定します。デフォルトの実装は
nullを返します。- パラメーター:
beanClass- Bean の生のクラス (非null)beanName- Bean の名前- 戻り値:
- 候補コンストラクター、または何も指定されていない場合は
null - 例外:
BeansException- エラーの場合
getEarlyBeanReference
通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。このコールバックは、ポストプロセッサーにラッパーを早期に公開する機会を与えます。つまり、ターゲット Bean インスタンスが完全に初期化される前。公開されたオブジェクトは、
BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)/BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)が他に公開するものと同等である必要があります。このメソッドによって返されるオブジェクトは、ポストプロセッサーが上記の後処理コールバックとは異なるラッパーを返さない限り、Bean 参照として使用されることに注意してください。言い換えると、これらのポストプロセスコールバックは、最終的に同じ参照を公開するか、代わりに後続のコールバックから未加工の Bean インスタンスを返す可能性があります(影響を受ける Bean のラッパーがこのメソッドの呼び出し用にすでに構築されている場合は、公開されます。デフォルトで最終的な Bean 参照として)。デフォルトの実装は、指定された
beanをそのまま返します。- パラメーター:
bean- 生の Bean インスタンスbeanName- Bean の名前- 戻り値:
- Bean 参照として公開するオブジェクト (通常、渡された Bean インスタンスをデフォルトとして使用)
- 例外:
BeansException- エラーの場合