public abstract class InstantiationAwareBeanPostProcessorAdapter extends java.lang.Object implements SmartInstantiationAwareBeanPostProcessor
SmartInstantiationAwareBeanPostProcessor
のすべてのメソッドを実装するアダプター。サブクラスは、実際に関心のあるメソッドのみをオーバーライドできます。 この基本クラスは、InstantiationAwareBeanPostProcessor
機能が実際に必要な場合にのみ推奨されることに注意してください。必要なのがプレーンな BeanPostProcessor
機能だけの場合は、その(より単純な)インターフェースをそのまま実装することをお勧めします。
コンストラクターと説明 |
---|
InstantiationAwareBeanPostProcessorAdapter() |
修飾子と型 | メソッドと説明 |
---|---|
java.lang.reflect.Constructor<?>[] | determineCandidateConstructors(java.lang.Class<?> beanClass, java.lang.String beanName) 指定された Bean に使用する候補コンストラクターを決定します。 |
java.lang.Object | getEarlyBeanReference(java.lang.Object bean, java.lang.String beanName) 通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。 |
java.lang.Object | postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。 |
boolean | postProcessAfterInstantiation(java.lang.Object bean, java.lang.String beanName) コンストラクターまたはファクトリメソッドを介して Bean がインスタンス化された後、Spring プロパティの設定(明示的なプロパティまたはオートワイヤーから)が発生する前に操作を実行します。 |
java.lang.Object | postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。 |
java.lang.Object | postProcessBeforeInstantiation(java.lang.Class<?> beanClass, java.lang.String beanName) ターゲット Bean がインスタンス化される前に、この BeanPostProcessor を適用します。 |
PropertyValues | postProcessPropertyValues(PropertyValues pvs, java.beans.PropertyDescriptor[] pds, java.lang.Object bean, java.lang.String beanName) ファクトリが指定された Bean に適用する前に、指定されたプロパティ値を後処理します。 |
java.lang.Class<?> | predictBeanType(java.lang.Class<?> beanClass, java.lang.String beanName) 最終的にこのプロセッサーの InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) コールバックから返される Bean の型を予測します。 |
public InstantiationAwareBeanPostProcessorAdapter()
@Nullable public java.lang.Class<?> predictBeanType(java.lang.Class<?> beanClass, java.lang.String beanName)
SmartInstantiationAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
コールバックから返される Bean の型を予測します。 デフォルトの実装は null
を返します。
SmartInstantiationAwareBeanPostProcessor
の predictBeanType
beanClass
- Bean の生のクラス beanName
- Bean の名前 null
@Nullable public java.lang.reflect.Constructor<?>[] determineCandidateConstructors(java.lang.Class<?> beanClass, java.lang.String beanName) throws BeansException
SmartInstantiationAwareBeanPostProcessor
デフォルトの実装は null
を返します。
SmartInstantiationAwareBeanPostProcessor
の determineCandidateConstructors
beanClass
- Bean の生のクラス (非 null
)beanName
- Bean の名前 null
BeansException
- エラーの場合 public java.lang.Object getEarlyBeanReference(java.lang.Object bean, java.lang.String beanName) throws BeansException
SmartInstantiationAwareBeanPostProcessor
このコールバックは、ポストプロセッサーにラッパーを早期に公開する機会を与えます。つまり、ターゲット Bean インスタンスが完全に初期化される前。公開されたオブジェクトは、BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)
/BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
が他に公開するものと同等である必要があります。このメソッドによって返されるオブジェクトは、ポストプロセッサーが上記の後処理コールバックとは異なるラッパーを返さない限り、Bean 参照として使用されることに注意してください。言い換えると、これらのポストプロセスコールバックは、最終的に同じ参照を公開するか、代わりに後続のコールバックから未加工の Bean インスタンスを返す可能性があります(影響を受ける Bean のラッパーがこのメソッドの呼び出し用にすでに構築されている場合は、公開されます。デフォルトで最終的な Bean 参照として)。
デフォルトの実装は、指定された bean
をそのまま返します。
SmartInstantiationAwareBeanPostProcessor
の getEarlyBeanReference
bean
- 生の Bean インスタンス beanName
- Bean の名前 BeansException
- エラーの場合 @Nullable public java.lang.Object postProcessBeforeInstantiation(java.lang.Class<?> beanClass, java.lang.String beanName) throws BeansException
InstantiationAwareBeanPostProcessor
このメソッドによって null 以外のオブジェクトが返された場合、Bean 作成プロセスは短絡されます。適用される追加の処理は、構成された BeanPostProcessors
からの BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
コールバックのみです。
このコールバックは、Bean クラスを持つ Bean 定義にのみ適用されます。特に、「工法」の Bean には適用されません。
ポストプロセッサーは、ここで返される Bean オブジェクトの型を予測するために、拡張 SmartInstantiationAwareBeanPostProcessor
インターフェースを実装できます。
デフォルトの実装は null
を返します。
InstantiationAwareBeanPostProcessor
の postProcessBeforeInstantiation
beanClass
- インスタンス化される Bean のクラス beanName
- Bean の名前 null
BeansException
- エラーの場合 AbstractBeanDefinition.hasBeanClass()
, AbstractBeanDefinition.getFactoryMethodName()
public boolean postProcessAfterInstantiation(java.lang.Object bean, java.lang.String beanName) throws BeansException
InstantiationAwareBeanPostProcessor
これは、Spring のオートワイヤーが開始される直前の、指定された Bean インスタンスでカスタムフィールドインジェクションを実行するための理想的なコールバックです。
デフォルトの実装は true
を返します。
InstantiationAwareBeanPostProcessor
の postProcessAfterInstantiation
bean
- プロパティがまだ設定されていない状態で作成された Bean インスタンス beanName
- Bean の名前 true
。プロパティの入力をスキップする必要がある場合は false
。通常の実装では true
を返します。false
を返すと、後続の InstantiationAwareBeanPostProcessor インスタンスがこの Bean インスタンスで呼び出されなくなります。BeansException
- エラーの場合 public PropertyValues postProcessPropertyValues(PropertyValues pvs, java.beans.PropertyDescriptor[] pds, java.lang.Object bean, java.lang.String beanName) throws BeansException
InstantiationAwareBeanPostProcessor
また、通常は元の PropertyValues に基づいて新しい MutablePropertyValues インスタンスを作成し、特定の値を追加または削除して、適用するプロパティ値を置き換えることもできます。
デフォルトの実装は、指定された pvs
をそのまま返します。
InstantiationAwareBeanPostProcessor
の postProcessPropertyValues
pvs
- ファクトリが適用しようとしているプロパティ値 (非 null
)pds
- ターゲット Bean に関連するプロパティ記述子 (依存関係型が無視されている - ファクトリが特に処理する - すでに除外されている)bean
- Bean インスタンスは作成されましたが、そのプロパティはまだ設定されていません beanName
- Bean の名前 null
BeansException
- エラーの場合 MutablePropertyValues
public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName) throws BeansException
BeanPostProcessor
afterPropertiesSet
またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。 デフォルトの実装は、指定された bean
をそのまま返します。
BeanPostProcessor
の postProcessBeforeInitialization
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
public java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName) throws BeansException
BeanPostProcessor
afterPropertiesSet
またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean
チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。
このコールバックは、他のすべての BeanPostProcessor コールバックとは対照的に、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
メソッドによってトリガーされた短絡後にも呼び出されます。
デフォルトの実装は、指定された bean
をそのまま返します。
BeanPostProcessor
の postProcessAfterInitialization
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
, FactoryBean