インターフェース InstantiationAwareBeanPostProcessor
- すべてのスーパーインターフェース:
BeanPostProcessor
- すべての既知のサブインターフェース:
SmartInstantiationAwareBeanPostProcessor
- すべての既知の実装クラス:
AbstractAdvisingBeanPostProcessor
、AbstractAdvisorAutoProxyCreator
、AbstractAutoProxyCreator
、AbstractBeanFactoryAwareAdvisingPostProcessor
、AnnotationAwareAspectJAutoProxyCreator
、AspectJAwareAdvisorAutoProxyCreator
、AsyncAnnotationBeanPostProcessor
、AutowiredAnnotationBeanPostProcessor
、BeanNameAutoProxyCreator
、CommonAnnotationBeanPostProcessor
、DefaultAdvisorAutoProxyCreator
、InfrastructureAdvisorAutoProxyCreator
、MethodValidationPostProcessor
、PersistenceAnnotationBeanPostProcessor
、PersistenceExceptionTranslationPostProcessor
、ScriptFactoryPostProcessor
BeanPostProcessor
のサブインターフェース。通常、特定のターゲット Bean のデフォルトのインスタンス化を抑制するために使用されます。たとえば、特別な TargetSources(ターゲットのプール、遅延初期化など)でプロキシを作成したり、フィールドインジェクションなどの追加のインジェクション戦略を実装したりします。
注意 : このインターフェースは、主にフレームワーク内で内部的に使用するための特別な目的のインターフェースです。可能な限りプレーンな BeanPostProcessor
インターフェースを実装することをお勧めします。
- 導入:
- 1.2
- 作成者:
- Juergen Hoeller, Rod Johnson
- 関連事項:
方法の概要
修飾子と型メソッド説明default boolean
postProcessAfterInstantiation
(ObjectSE bean, StringSE beanName) コンストラクターまたはファクトリメソッドを介して Bean がインスタンス化された後、Spring プロパティの設定(明示的なプロパティまたはオートワイヤーから)が発生する前に操作を実行します。default ObjectSE
postProcessBeforeInstantiation
(ClassSE<?> beanClass, StringSE beanName) ターゲット Bean がインスタンス化される前に、この BeanPostProcessor を適用します。default PropertyValues
postProcessProperties
(PropertyValues pvs, ObjectSE bean, StringSE beanName) ファクトリが指定された Bean に適用する前に、指定されたプロパティ値を後処理します。インターフェース org.springframework.beans.factory.config.BeanPostProcessor から継承されたメソッド
postProcessAfterInitialization, postProcessBeforeInitialization
メソッドの詳細
postProcessBeforeInstantiation
@Nullable default ObjectSE postProcessBeforeInstantiation(ClassSE<?> beanClass, StringSE beanName) throws BeansException ターゲット Bean がインスタンス化される前に、この BeanPostProcessor を適用します。返される Bean オブジェクトは、ターゲット Bean の代わりに使用するプロキシであり、ターゲット Bean のデフォルトのインスタンス化を効果的に抑制します。このメソッドによって null 以外のオブジェクトが返された場合、Bean 作成プロセスは短絡されます。適用される追加の処理は、構成された
BeanPostProcessors
からのBeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
コールバックのみです。このコールバックは、Bean クラスを持つ Bean 定義、および返された Bean 型がここに渡されるファクトリメソッド定義に適用されます。
ポストプロセッサーは、ここで返される Bean オブジェクトの型を予測するために、拡張
SmartInstantiationAwareBeanPostProcessor
インターフェースを実装できます。デフォルトの実装は
null
を返します。- パラメーター:
beanClass
- インスタンス化される Bean のクラスbeanName
- Bean の名前- 戻り値:
- ターゲット Bean のデフォルトのインスタンスの代わりに公開する Bean オブジェクト、またはデフォルトのインスタンス化を続行する
null
- 例外:
BeansException
- エラーの場合- 関連事項:
postProcessAfterInstantiation
default boolean postProcessAfterInstantiation(ObjectSE bean, StringSE beanName) throws BeansException コンストラクターまたはファクトリメソッドを介して Bean がインスタンス化された後、Spring プロパティの設定(明示的なプロパティまたはオートワイヤーから)が発生する前に操作を実行します。これは、Spring のオートワイヤーが開始される直前の、指定された Bean インスタンスでカスタムフィールドインジェクションを実行するための理想的なコールバックです。
デフォルトの実装は
true
を返します。- パラメーター:
bean
- プロパティがまだ設定されていない状態で作成された Bean インスタンスbeanName
- Bean の名前- 戻り値:
- Bean でプロパティを設定する必要がある場合は
true
。プロパティの入力をスキップする必要がある場合はfalse
。通常の実装ではtrue
を返します。false
を返すと、後続の InstantiationAwareBeanPostProcessor インスタンスがこの Bean インスタンスで呼び出されなくなります。 - 例外:
BeansException
- エラーの場合- 関連事項:
postProcessProperties
@Nullable default PropertyValues postProcessProperties(PropertyValues pvs, ObjectSE bean, StringSE beanName) throws BeansException ファクトリが指定された Bean に適用する前に、指定されたプロパティ値を後処理します。デフォルトの実装は、指定された
pvs
をそのまま返します。- パラメーター:
pvs
- ファクトリが適用しようとしているプロパティ値 (非null
)bean
- Bean インスタンスは作成されましたが、そのプロパティはまだ設定されていませんbeanName
- Bean の名前- 戻り値:
- 指定された Bean に適用する実際のプロパティ値(渡された PropertyValues インスタンスにすることができます)、またはプロパティの入力をスキップする
null
- 例外:
BeansException
- エラーの場合- 導入:
- 5.1