インターフェース 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 ObjectSE
getEarlyBeanReference
(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
- エラーの場合