public interface SmartInstantiationAwareBeanPostProcessor extends InstantiationAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor
インターフェースの拡張。処理された Bean の最終的な型を予測するためのコールバックを追加します。 注意 : このインターフェースは、主にフレームワーク内での内部使用のための特別な目的のインターフェースです。一般に、アプリケーションが提供するポストプロセッサーは、単純な BeanPostProcessor
インターフェースを実装するか、InstantiationAwareBeanPostProcessorAdapter
クラスから派生させる必要があります。ポイントリリースであっても、このインターフェースに新しいメソッドが追加される場合があります。
InstantiationAwareBeanPostProcessorAdapter
修飾子と型 | メソッドと説明 |
---|---|
default java.lang.reflect.Constructor<?>[] | determineCandidateConstructors(java.lang.Class<?> beanClass, java.lang.String beanName) 指定された Bean に使用する候補コンストラクターを決定します。 |
default java.lang.Object | getEarlyBeanReference(java.lang.Object bean, java.lang.String beanName) 通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。 |
default java.lang.Class<?> | predictBeanType(java.lang.Class<?> beanClass, java.lang.String beanName) 最終的にこのプロセッサーの InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) コールバックから返される Bean の型を予測します。 |
postProcessAfterInstantiation, postProcessBeforeInstantiation, postProcessPropertyValues
postProcessAfterInitialization, postProcessBeforeInitialization
@Nullable default java.lang.Class<?> predictBeanType(java.lang.Class<?> beanClass, java.lang.String beanName) throws BeansException
InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
コールバックから返される Bean の型を予測します。 デフォルトの実装は null
を返します。
beanClass
- Bean の生のクラス beanName
- Bean の名前 null
BeansException
- エラーの場合 @Nullable default java.lang.reflect.Constructor<?>[] determineCandidateConstructors(java.lang.Class<?> beanClass, java.lang.String beanName) throws BeansException
デフォルトの実装は null
を返します。
beanClass
- Bean の生のクラス (非 null
)beanName
- Bean の名前 null
BeansException
- エラーの場合 default java.lang.Object getEarlyBeanReference(java.lang.Object bean, java.lang.String beanName) throws BeansException
このコールバックは、ポストプロセッサーにラッパーを早期に公開する機会を与えます。つまり、ターゲット 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 の名前 BeansException
- エラーの場合