インターフェース InstantiationAwareBeanPostProcessor

すべてのスーパーインターフェース:
BeanPostProcessor
すべての既知のサブインターフェース:
SmartInstantiationAwareBeanPostProcessor
すべての既知の実装クラス:
AbstractAdvisingBeanPostProcessorAbstractAdvisorAutoProxyCreatorAbstractAutoProxyCreatorAbstractBeanFactoryAwareAdvisingPostProcessorAnnotationAwareAspectJAutoProxyCreatorAspectJAwareAdvisorAutoProxyCreatorAsyncAnnotationBeanPostProcessorAutowiredAnnotationBeanPostProcessorBeanNameAutoProxyCreatorCommonAnnotationBeanPostProcessorDefaultAdvisorAutoProxyCreatorInfrastructureAdvisorAutoProxyCreatorMethodValidationPostProcessorPersistenceAnnotationBeanPostProcessorPersistenceExceptionTranslationPostProcessorScriptFactoryPostProcessor

public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor
インスタンス化前のコールバックと、インスタンス化後、明示的なプロパティが設定されるかオートワイヤーが発生する前のコールバックを追加する BeanPostProcessor のサブインターフェース。

通常、特定のターゲット Bean のデフォルトのインスタンス化を抑制するために使用されます。たとえば、特別な TargetSources(ターゲットのプール、遅延初期化など)でプロキシを作成したり、フィールドインジェクションなどの追加のインジェクション戦略を実装したりします。

注意 : このインターフェースは、主にフレームワーク内で内部的に使用するための特別な目的のインターフェースです。可能な限りプレーンな BeanPostProcessor インターフェースを実装することをお勧めします。

導入:
1.2
作成者:
Juergen Hoeller, Rod Johnson
関連事項:
  • メソッドの詳細

    • postProcessBeforeInstantiation

      @Nullable default ObjectSE postProcessBeforeInstantiation(ClassSE<?> beanClass, StringSE beanName) throws BeansException
      ターゲット Bean がインスタンス化される前に、この BeanPostProcessor を適用します。返される Bean オブジェクトは、ターゲット Bean の代わりに使用するプロキシであり、ターゲット Bean のデフォルトのインスタンス化を効果的に抑制します。

      このメソッドによって null 以外のオブジェクトが返された場合、Bean 作成プロセスは短絡されます。適用される追加の処理は、構成された BeanPostProcessors からの BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String) コールバックのみです。

      このコールバックは、Bean クラスを持つ Bean 定義、および返された Bean 型がここに渡されるファクトリメソッド定義に適用されます。

      ポストプロセッサーは、ここで返される Bean オブジェクトの型を予測するために、拡張 SmartInstantiationAwareBeanPostProcessor インターフェースを実装できます。

      デフォルトの実装は null を返します。

      パラメーター:
      beanClass - インスタンス化される Bean のクラス
      beanName - Bean の名前
      戻り値:
      ターゲット Bean のデフォルトのインスタンスの代わりに公開する Bean オブジェクト、またはデフォルトのインスタンス化を続行する null 
      例外:
      BeansException - エラーの場合
      関連事項:
    • postProcessAfterInstantiation

      default boolean postProcessAfterInstantiation(ObjectSE bean, StringSE beanName) throws BeansException
      コンストラクターまたはファクトリメソッドを介して Bean がインスタンス化された後、Spring プロパティの設定(明示的なプロパティまたはオートワイヤーから)が発生する前に操作を実行します。

      これは、Spring のオートワイヤーが開始される直前の、指定された Bean インスタンスでカスタムフィールドインジェクションを実行するための理想的なコールバックです。

      デフォルトの実装は true を返します。

      パラメーター:
      bean - プロパティがまだ設定されていない状態で作成された Bean インスタンス
      beanName - Bean の名前
      戻り値:
      Bean でプロパティを設定する必要がある場合は true。プロパティの入力をスキップする必要がある場合は false。通常の実装では true を返します。false を返すと、後続の InstantiationAwareBeanPostProcessor インスタンスがこの Bean インスタンスで呼び出されなくなります。
      例外:
      BeansException - エラーの場合
      関連事項:
    • postProcessProperties

      @Nullable default PropertyValues postProcessProperties(PropertyValues pvs, ObjectSE bean, StringSE beanName) throws BeansException
      ファクトリが指定された Bean に適用する前に、指定されたプロパティ値を後処理します。

      デフォルトの実装は、指定された pvs をそのまま返します。

      パラメーター:
      pvs - ファクトリが適用しようとしているプロパティ値 (非 null)
      bean - Bean インスタンスは作成されましたが、そのプロパティはまだ設定されていません
      beanName - Bean の名前
      戻り値:
      指定された Bean に適用する実際のプロパティ値(渡された PropertyValues インスタンスにすることができます)、またはプロパティの入力をスキップする null 
      例外:
      BeansException - エラーの場合
      導入:
      5.1