インターフェース BeanPostProcessor
- すべての既知のサブインターフェース:
DestructionAwareBeanPostProcessor
、InstantiationAwareBeanPostProcessor
、MergedBeanDefinitionPostProcessor
、SmartInstantiationAwareBeanPostProcessor
- すべての既知の実装クラス:
AbstractAdvisingBeanPostProcessor
、AbstractAdvisorAutoProxyCreator
、AbstractAutoProxyCreator
、AbstractBeanFactoryAwareAdvisingPostProcessor
、AdvisorAdapterRegistrationManager
、AnnotationAwareAspectJAutoProxyCreator
、AspectJAwareAdvisorAutoProxyCreator
、AsyncAnnotationBeanPostProcessor
、AutowiredAnnotationBeanPostProcessor
、BeanNameAutoProxyCreator
、BeanValidationPostProcessor
、CommonAnnotationBeanPostProcessor
、DefaultAdvisorAutoProxyCreator
、ImportAwareAotBeanPostProcessor
、InfrastructureAdvisorAutoProxyCreator
、InitDestroyAnnotationBeanPostProcessor
、JmsListenerAnnotationBeanPostProcessor
、LoadTimeWeaverAwareProcessor
、MethodValidationPostProcessor
、PersistenceAnnotationBeanPostProcessor
、PersistenceExceptionTranslationPostProcessor
、ScheduledAnnotationBeanPostProcessor
、ScriptFactoryPostProcessor
、ServletContextAwareProcessor
、SimpleServletPostProcessor
通常、マーカーインターフェースなどを介して 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 については考慮されません。
- 導入:
- 10.10.2003
- 作成者:
- Juergen Hoeller, Sam Brannen
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明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 インスタンスに適用します。
メソッドの詳細
postProcessBeforeInitialization
@Nullable default ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) throws BeansException Bean 初期化コールバック(InitializingBean のafterPropertiesSet
またはカスタム init メソッドなど)の前に、このBeanPostProcessor
を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。デフォルトの実装は、指定された
bean
をそのまま返します。- パラメーター:
bean
- 新しい Bean インスタンスbeanName
- Bean の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
null
の場合、後続の BeanPostProcessors は呼び出されません - 例外:
BeansException
- エラーの場合- 関連事項:
postProcessAfterInitialization
@Nullable default ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName) throws BeansException Bean 初期化コールバック(InitializingBean の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 の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
null
の場合、後続の BeanPostProcessors は呼び出されません - 例外:
BeansException
- エラーの場合- 関連事項: