インターフェース BeanPostProcessor

すべての既知のサブインターフェース:
DestructionAwareBeanPostProcessorInstantiationAwareBeanPostProcessorMergedBeanDefinitionPostProcessorSmartInstantiationAwareBeanPostProcessor
すべての既知の実装クラス:
AbstractAdvisingBeanPostProcessorAbstractAdvisorAutoProxyCreatorAbstractAutoProxyCreatorAbstractBeanFactoryAwareAdvisingPostProcessorAdvisorAdapterRegistrationManagerAnnotationAwareAspectJAutoProxyCreatorAspectJAwareAdvisorAutoProxyCreatorAsyncAnnotationBeanPostProcessorAutowiredAnnotationBeanPostProcessorBeanNameAutoProxyCreatorBeanValidationPostProcessorCommonAnnotationBeanPostProcessorDefaultAdvisorAutoProxyCreatorImportAwareAotBeanPostProcessorInfrastructureAdvisorAutoProxyCreatorInitDestroyAnnotationBeanPostProcessorJmsListenerAnnotationBeanPostProcessorLoadTimeWeaverAwareProcessorMethodValidationPostProcessorPersistenceAnnotationBeanPostProcessorPersistenceExceptionTranslationPostProcessorScheduledAnnotationBeanPostProcessorScriptFactoryPostProcessorServletContextAwareProcessorSimpleServletPostProcessor

public interface BeanPostProcessor
新しい Bean インスタンスのカスタム変更を可能にするファクトリフック — たとえば、マーカーインターフェースのチェックや、Bean をプロキシでラップするなどです。

通常、マーカーインターフェースなどを介して 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
    Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)のに、この BeanPostProcessor を新しい Bean インスタンス適用します。
    default ObjectSE
    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 - エラーの場合
      関連事項: