public interface BeanPostProcessor
通常、マーカーインターフェースなどを介して Bean を生成するポストプロセッサーは postProcessBeforeInitialization(java.lang.Object, java.lang.String)
を実装しますが、プロキシで Bean をラップするポストプロセッサーは通常 postProcessAfterInitialization(java.lang.Object, java.lang.String)
を実装します。
ApplicationContext
は、Bean 定義内の BeanPostProcessor
Bean を自動検出し、それらのポストプロセッサーをその後作成される Bean に適用できます。プレーンな BeanFactory
を使用すると、ポストプロセッサーをプログラムで登録し、Bean ファクトリで作成されたすべての Bean にポストプロセッサーを適用できます。
ApplicationContext
で自動検出される BeanPostProcessor
Bean は、PriorityOrdered
および Ordered
セマンティクスに従って順序付けられます。対照的に、BeanFactory
を使用してプログラムで登録された BeanPostProcessor
Bean は、登録順に適用されます。PriorityOrdered
または Ordered
インターフェースの実装を通じて表される順序付けのセマンティクスは、プログラムで登録されたポストプロセッサーでは無視されます。さらに、@Order
アノテーションは BeanPostProcessor
Bean については考慮されません。
InstantiationAwareBeanPostProcessor
, DestructionAwareBeanPostProcessor
, ConfigurableBeanFactory.addBeanPostProcessor(org.springframework.beans.factory.config.BeanPostProcessor)
, BeanFactoryPostProcessor
修飾子と型 | メソッドと説明 |
---|---|
default ObjectSE | postProcessAfterInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の後に、この BeanPostProcessor を新しい Bean インスタンスに適用します。 |
default ObjectSE | postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。 |
@Nullable default ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) throws BeansException
afterPropertiesSet
またはカスタム init メソッドなど)の前に、この BeanPostProcessor
を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。 デフォルトの実装は、指定された bean
をそのまま返します。
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
@Nullable default ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName) throws BeansException
afterPropertiesSet
またはカスタム init メソッドなど)の後に、この BeanPostProcessor
を新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean
チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。
このコールバックは、他のすべての BeanPostProcessor
コールバックとは異なり、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
メソッドによってトリガーされた短絡後にも呼び出されます。
デフォルトの実装は、指定された bean
をそのまま返します。
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
, FactoryBean