インターフェース Lifecycle
- すべての既知のサブインターフェース:
ConfigurableApplicationContext、ConfigurableWebApplicationContext、LifecycleProcessor、MessageListenerContainer、SmartLifecycle
- すべての既知の実装クラス:
AbstractApplicationContext、AbstractBrokerMessageHandler、AbstractHandshakeHandler、AbstractJmsListeningContainer、AbstractMessageListenerContainer、AbstractPollingMessageListenerContainer、AbstractRefreshableApplicationContext、AbstractRefreshableConfigApplicationContext、AbstractRefreshableWebApplicationContext、AbstractXmlApplicationContext、AnnotatedEndpointConnectionManager、AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext、CachingConnectionFactory、ClassPathXmlApplicationContext、ConnectionManagerSupport、DefaultHandshakeHandler、DefaultLifecycleProcessor、DefaultMessageListenerContainer、DefaultSockJsService、EndpointConnectionManager、ExecutorConfigurationSupport、FileSystemXmlApplicationContext、GenericApplicationContext、GenericGroovyApplicationContext、GenericMessageEndpointManager、GenericWebApplicationContext、GenericXmlApplicationContext、GroovyWebApplicationContext、HandshakeWebSocketService、JettyWebSocketClient、JettyXhrTransport、JmsListenerEndpointRegistry、JmsMessageEndpointManager、ReactorClientHttpConnector、ReactorClientHttpRequestFactory、ReactorNettyClientRequestFactory、ReactorResourceFactory、ReactorResourceFactory、ScheduledExecutorFactoryBean、SchedulerFactoryBean、SimpAnnotationMethodMessageHandler、SimpleAsyncTaskScheduler、SimpleBrokerMessageHandler、SimpleMessageListenerContainer、SingleConnectionFactory、SockJsClient、SockJsHttpRequestHandler、StaticApplicationContext、StaticWebApplicationContext、StompBrokerRelayMessageHandler、SubProtocolWebSocketHandler、ThreadPoolExecutorFactoryBean、ThreadPoolTaskExecutor、ThreadPoolTaskScheduler、TransportHandlingSockJsService、UserDestinationMessageHandler、WebSocketAnnotationMethodMessageHandler、WebSocketConnectionManager、WebSocketHandlerMapping、WebSocketHttpRequestHandler、WebSocketStompClient、WebSocketTransport、WebSocketTransportHandler、XmlWebApplicationContext
SmartLifecycle を実装することを検討してください。 コンポーネント (通常は Spring コンテキストで定義された Spring Bean) とコンテナー (通常は Spring ApplicationContext 自体) の両方で実装できます。コンテナーは、実行時の停止 / 再起動シナリオなど、各コンテナー内で適用されるすべてのコンポーネントに開始 / 停止シグナルを伝播します。
直接呼び出しまたは JMX を介した管理操作に使用できます。後者の場合、MBeanExporter は通常 InterfaceBasedMBeanInfoAssembler で定義され、アクティビティ制御されたコンポーネントの可視性をライフサイクルインターフェースに制限します。
現在の Lifecycle インターフェースは、 トップレベルのシングルトン Bean でのみサポートされていることに注意してください。他のコンポーネントでは、Lifecycle インターフェースは検出されないままなので無視されます。また、拡張 SmartLifecycle インターフェースは、アプリケーションコンテキストの起動およびシャットダウンフェーズとの高度な統合を提供することに注意してください。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller
- 関連事項:
メソッドのサマリー
メソッドの詳細
start
void start()このコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これにより、自動起動しないコンポーネントも含め、適用されるすべてのコンポーネントにハードスタートシグナルが伝播されます。
stop
void stop()このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycleとそのstop(Runnable)バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
LifecycleBean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
isRunning
boolean isRunning()このコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
trueを返します。- 戻り値:
- コンポーネントが現在実行中かどうか