クラス InitDestroyAnnotationBeanPostProcessor

java.lang.ObjectSE
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
実装されたすべてのインターフェース:
SerializableSEBeanRegistrationAotProcessorBeanPostProcessorDestructionAwareBeanPostProcessorMergedBeanDefinitionPostProcessorOrderedPriorityOrdered
既知の直属サブクラス
CommonAnnotationBeanPostProcessor

アノテーション付きの init および destroy メソッドを呼び出す BeanPostProcessor 実装。Spring の InitializingBean および DisposableBean コールバックインターフェースの代替アノテーションを可能にします。

このポストプロセッサーがチェックする実際のアノテーション型は、"initAnnotationType" および "destroyAnnotationType" プロパティを介して構成できます。必須のアノテーション属性がないため、任意のカスタムアノテーションを使用できます。

init および destroy アノテーションは、公開、パッケージ保護、保護、プライベートなど、どの可視性のメソッドにも適用できます。複数のそのようなメソッドにアノテーションを付けることができますが、それぞれ 1 つの init メソッドと destroy メソッドにのみアノテーションを付けることをお勧めします。

Spring の CommonAnnotationBeanPostProcessor は、それぞれ初期化アノテーションと破棄アノテーションとして、そのままで PostConstructEEPreDestroyEE アノテーションをサポートします。さらに、名前付き Bean のアノテーション駆動型インジェクション用の ResourceEE アノテーションもサポートしています。

導入:
2.5
作成者:
Juergen Hoeller, Stephane Nicoll, Phillip Webb, Sam Brannen
関連事項:
  • フィールドの詳細

    • logger

      protected transient Log logger
  • コンストラクターの詳細

    • InitDestroyAnnotationBeanPostProcessor

      public InitDestroyAnnotationBeanPostProcessor()
  • メソッドの詳細

    • setInitAnnotationType

      public void setInitAnnotationType(ClassSE<? extends AnnotationSE> initAnnotationType)
      チェックする init アノテーションを指定して、Bean の構成後に呼び出す初期化メソッドを示します。

      必須のアノテーション属性がないため、任意のカスタムアノテーションを使用できます。デフォルトはありませんが、典型的な選択肢は PostConstructEE アノテーションです。

      関連事項:
    • addInitAnnotationType

      public void addInitAnnotationType(@Nullable ClassSE<? extends AnnotationSE> initAnnotationType)
      Bean の構成後に呼び出す初期化メソッドを示す、チェックする init アノテーションを追加します。
      導入:
      6.0.11
      関連事項:
    • setDestroyAnnotationType

      public void setDestroyAnnotationType(ClassSE<? extends AnnotationSE> destroyAnnotationType)
      チェックする destroy アノテーションを指定して、コンテキストがシャットダウンするときに呼び出す破棄メソッドを示します。

      必須のアノテーション属性がないため、任意のカスタムアノテーションを使用できます。デフォルトはありませんが、典型的な選択肢は PreDestroyEE アノテーションです。

      関連事項:
    • addDestroyAnnotationType

      public void addDestroyAnnotationType(@Nullable ClassSE<? extends AnnotationSE> destroyAnnotationType)
      コンテキストがシャットダウンするときに呼び出す破棄メソッドを示す、チェックする破棄アノテーションを追加します。
      導入:
      6.0.11
      関連事項:
    • setOrder

      public void setOrder(int order)
    • getOrder

      public int getOrder()
      インターフェースからコピーされた説明: Ordered
      このオブジェクトの順序値を取得します。

      値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。

      同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。

      次で指定:
      インターフェース OrderedgetOrder 
      戻り値:
      オーダー額
      関連事項:
    • postProcessMergedBeanDefinition

      public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanClass, StringSE beanName)
      インターフェースからコピーされた説明: MergedBeanDefinitionPostProcessor
      指定された Bean の指定されたマージ済み Bean 定義を後処理します。
      次で指定:
      インターフェース MergedBeanDefinitionPostProcessorpostProcessMergedBeanDefinition 
      パラメーター:
      beanDefinition - Bean のマージされた Bean 定義
      beanClass - 管理対象 Bean インスタンスの実際の型
      beanName - Bean の名前
      関連事項:
    • processAheadOfTime

      @Nullable public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean)
      インターフェースからコピーされた説明: BeanRegistrationAotProcessor
      指定された RegisteredBean インスタンスを事前に処理し、コントリビューションまたは null を返します。

      プロセッサーは、任意の手法を自由に使用して、特定のインスタンスを分析できます。ほとんどの場合、リフレクションを使用して、コントリビューションで使用するフィールドまたはメソッドを見つけます。コントリビューションは通常、AOT 最適化アプリケーションの実行時に使用できるソースコードまたはリソースファイルを生成します。

      指定されたインスタンスがプロセッサーに関連していない場合は、null コントリビューションを返す必要があります。

      次で指定:
      インターフェース BeanRegistrationAotProcessorprocessAheadOfTime 
      パラメーター:
      registeredBean - 処理する登録済み Bean
      戻り値:
      BeanRegistrationAotContribution または null
    • postProcessBeforeInitialization

      public ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) throws BeansException
      インターフェースからコピーされた説明: BeanPostProcessor
      Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)のに、この BeanPostProcessor を指定された新しい Bean インスタンス適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。

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

      次で指定:
      インターフェース BeanPostProcessorpostProcessBeforeInitialization 
      パラメーター:
      bean - 新しい Bean インスタンス
      beanName - Bean の名前
      戻り値:
      使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。null の場合、後続の BeanPostProcessors は呼び出されません
      例外:
      BeansException - エラーの場合
      関連事項:
    • postProcessAfterInitialization

      public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName) throws BeansException
      インターフェースからコピーされた説明: BeanPostProcessor
      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 をそのまま返します。

      次で指定:
      インターフェース BeanPostProcessorpostProcessAfterInitialization 
      パラメーター:
      bean - 新しい Bean インスタンス
      beanName - Bean の名前
      戻り値:
      使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。null の場合、後続の BeanPostProcessors は呼び出されません
      例外:
      BeansException - エラーの場合
      関連事項:
    • postProcessBeforeDestruction

      public void postProcessBeforeDestruction(ObjectSE bean, StringSE beanName) throws BeansException
      インターフェースからコピーされた説明: DestructionAwareBeanPostProcessor
      指定された Bean インスタンスを破棄する前に、この BeanPostProcessor を適用します (たとえば、カスタム破棄コールバックを呼び出します)。

      DisposableBean の destroy およびカスタム destroy メソッドのように、このコールバックは、コンテナーがライフサイクルを完全に管理する Bean にのみ適用されます。これは通常、シングルトンとスコープ Bean の場合です。

      次で指定:
      インターフェース DestructionAwareBeanPostProcessorpostProcessBeforeDestruction 
      パラメーター:
      bean - 破棄される Bean インスタンス
      beanName - Bean の名前
      例外:
      BeansException - エラーの場合
      関連事項:
    • requiresDestruction

      public boolean requiresDestruction(ObjectSE bean)
      インターフェースからコピーされた説明: DestructionAwareBeanPostProcessor
      指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。

      デフォルトの実装は true を返します。DestructionAwareBeanPostProcessor の 5 以前の実装がこのメソッドの具体的な実装を提供しない場合、Spring は true も暗黙のうちに想定します。

      次で指定:
      インターフェース DestructionAwareBeanPostProcessorrequiresDestruction 
      パラメーター:
      bean - チェックする Bean インスタンス
      戻り値:
      DestructionAwareBeanPostProcessor.postProcessBeforeDestruction(java.lang.Object, java.lang.String) が最終的にこの Bean インスタンスのために呼び出されることになっている場合は true、または不要な場合は false