インターフェース SmartInitializingSingleton

すべての既知の実装クラス:
AnnotationMBeanExporterCacheAspectSupportCacheInterceptorCacheProxyFactoryBeanContextLifecycleScheduledTaskRegistrarDefaultJCacheOperationSourceEventListenerMethodProcessorJmsListenerAnnotationBeanPostProcessorMBeanExporterScheduledAnnotationBeanPostProcessorServerEndpointExporterWebSocketMessageBrokerStats

public interface SmartInitializingSingleton
BeanFactory ブートストラップ中にシングルトンの事前インスタンス化フェーズの最後にトリガーされるコールバックインターフェース。このインターフェースは、通常のシングルトンインスタンス化アルゴリズムの後で初期化を実行するためにシングルトン Bean で実装でき、偶発的な早期初期化(たとえば、ListableBeanFactory.getBeansOfType(java.lang.Class<T>) 呼び出し)による副作用を回避します。その意味で、これは Bean のローカル構築フェーズの最後にトリガーされる InitializingBean の代替です。

このコールバックバリアントは、ContextRefreshedEvent にいくらか似ていますが、ApplicationListener の実装を必要としません。コンテキスト階層全体でコンテキスト参照をフィルタリングする必要はありません。また、beans パッケージのみへの依存関係が最小限に抑えられ、スタンドアロンの ListableBeanFactory が優先されます。ApplicationContext 環境だけでなく、実装。

注意 : 非同期タスクを開始 / 管理する場合は、代わりに Lifecycle を実装することをお勧めします。これにより、ランタイム管理のより豊富なモデルが提供され、段階的な起動 / シャットダウンが可能になります。

導入:
4.1
作成者:
Juergen Hoeller
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。
  • メソッドの詳細

    • afterSingletonsInstantiated

      void afterSingletonsInstantiated()
      シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。このメソッド内の ListableBeanFactory.getBeansOfType(java.lang.Class<T>) 呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。

      注意 : このコールバックは、BeanFactory ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。