public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor
BeanPostProcessor
のサブインターフェース。通常、特定のターゲット Bean のデフォルトのインスタンス化を抑制するために使用されます。たとえば、特別な TargetSources(ターゲットのプール、遅延初期化など)でプロキシを作成したり、フィールドインジェクションなどの追加のインジェクション戦略を実装したりします。
注意 : このインターフェースは、主にフレームワーク内での内部使用のための特別な目的のインターフェースです。プレーンな BeanPostProcessor
インターフェースを可能な限り実装するか、このインターフェースの拡張から保護するために InstantiationAwareBeanPostProcessorAdapter
から派生させることをお勧めします。
AbstractAutoProxyCreator.setCustomTargetSourceCreators(org.springframework.aop.framework.autoproxy.TargetSourceCreator...)
, LazyInitTargetSourceCreator
修飾子と型 | メソッドと説明 |
---|---|
boolean | postProcessAfterInstantiation(ObjectSE bean, StringSE beanName) コンストラクターまたはファクトリメソッドを介して Bean がインスタンス化された後、Spring プロパティの設定(明示的なプロパティまたはオートワイヤーから)が発生する前に操作を実行します。 |
ObjectSE | postProcessBeforeInstantiation(ClassSE<?> beanClass, StringSE beanName) ターゲット Bean がインスタンス化される前に、この BeanPostProcessor を適用します。 |
PropertyValues | postProcessPropertyValues(PropertyValues pvs, PropertyDescriptorSE[] pds, ObjectSE bean, StringSE beanName) ファクトリが指定された Bean に適用する前に、指定されたプロパティ値を後処理します。 |
postProcessAfterInitialization, postProcessBeforeInitialization
ObjectSE postProcessBeforeInstantiation(ClassSE<?> beanClass, StringSE beanName) throws BeansException
このメソッドによって null 以外のオブジェクトが返された場合、Bean 作成プロセスは短絡されます。適用される追加の処理は、構成された BeanPostProcessors
からの BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
コールバックのみです。
このコールバックは、Bean クラスを持つ Bean 定義にのみ適用されます。特に、「工法」の Bean には適用されません。
ポストプロセッサーは、ここで返される Bean オブジェクトの型を予測するために、拡張 SmartInstantiationAwareBeanPostProcessor
インターフェースを実装できます。
beanClass
- インスタンス化される Bean のクラス beanName
- Bean の名前 null
BeansException
- エラーの場合 AbstractBeanDefinition.hasBeanClass()
, AbstractBeanDefinition.getFactoryMethodName()
boolean postProcessAfterInstantiation(ObjectSE bean, StringSE beanName) throws BeansException
これは、Spring のオートワイヤーが開始される直前の、指定された Bean インスタンスでカスタムフィールドインジェクションを実行するための理想的なコールバックです。
bean
- プロパティがまだ設定されていない状態で作成された Bean インスタンス beanName
- Bean の名前 true
。プロパティの入力をスキップする必要がある場合は false
。通常の実装では true
を返します。false
を返すと、後続の InstantiationAwareBeanPostProcessor インスタンスがこの Bean インスタンスで呼び出されなくなります。BeansException
- エラーの場合 PropertyValues postProcessPropertyValues(PropertyValues pvs, PropertyDescriptorSE[] pds, ObjectSE bean, StringSE beanName) throws BeansException
また、通常は元の PropertyValues に基づいて新しい MutablePropertyValues インスタンスを作成し、特定の値を追加または削除して、適用するプロパティ値を置き換えることもできます。
pvs
- ファクトリが適用しようとしているプロパティ値 (非 null
)pds
- ターゲット Bean に関連するプロパティ記述子 (依存関係型が無視されている - ファクトリが特に処理する - すでに除外されている)bean
- Bean インスタンスは作成されましたが、そのプロパティはまだ設定されていません beanName
- Bean の名前 null
BeansException
- エラーの場合 MutablePropertyValues