インターフェース Lifecycle

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

public interface Lifecycle
ライフサイクルの開始 / 停止制御のメソッドを定義する共通のインターフェース。これの典型的な使用例は、非同期処理を制御することです。 注: このインターフェースは、特定の自動起動セマンティクスを意味するものではありません。そのために SmartLifecycle を実装することを検討してください

コンポーネント(通常は Spring コンテキストで定義された Spring Bean)とコンテナー(通常は Spring ApplicationContext 自体)の両方で実装できます。コンテナーは、各コンテナー内で適用されるすべてのコンポーネントに開始 / 停止信号を伝達します。実行時の停止 / 再開シナリオの場合。

直接呼び出しまたは JMX を介した管理操作に使用できます。後者の場合、MBeanExporter は通常 InterfaceBasedMBeanInfoAssembler で定義され、アクティビティ制御されたコンポーネントの可視性をライフサイクルインターフェースに制限します。

現在の Lifecycle インターフェースは、 トップレベルのシングルトン Bean でのみサポートされていることに注意してください。他のコンポーネントでは、Lifecycle インターフェースは検出されないままなので無視されます。また、拡張 SmartLifecycle インターフェースは、アプリケーションコンテキストの起動およびシャットダウンフェーズとの高度な統合を提供することに注意してください。

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

    修飾子と型
    メソッド
    説明
    boolean
    このコンポーネントが現在実行されているかどうかを確認します。
    void
    このコンポーネントを起動します。
    void
    このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。
  • メソッドの詳細

    • start

      void start()
      このコンポーネントを起動します。

      コンポーネントがすでに実行されている場合は、例外をスローしないでください。

      コンテナーの場合、これは適用されるすべてのコンポーネントに開始信号を伝播します。

      関連事項:
    • stop

      void stop()
      このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。

      この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止信号を事前に考慮することなく呼び出されます。

      コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。

      コンテナーの場合、これは停止信号を適用するすべてのコンポーネントに伝播します。

      関連事項:
    • isRunning

      boolean isRunning()
      このコンポーネントが現在実行されているかどうかを確認します。

      コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。

      戻り値:
      コンポーネントが現在実行中かどうか