クラス DefaultLifecycleProcessor
- 実装されているすべてのインターフェース:
Aware、BeanFactoryAware、Lifecycle、LifecycleProcessor
LifecycleProcessor 戦略のデフォルトの実装。 特定のフェーズ、起動 / シャットダウン時、ConfigurableApplicationContext での明示的な開始 / 停止対話のグループ内の Lifecycle Bean および SmartLifecycle Bean との対話を提供します。
6.1 以降、org.crac:crac 依存関係がクラスパス上にある場合、JVM チェックポイント / リストア (プロジェクト CRaC) のサポートも含まれます。実行中のすべての Bean は、CRaC チェックポイント / リストアコールバックに従って停止および再起動されます。
6.2 以降、このプロセッサーは、SmartLifecycle.stop(Runnable) 実装に適用され、特定のシャットダウンフェーズにカスタムタイムアウトを設定できます。6.2.6 以降では、個別のタイムアウトを設定して特定のフェーズを同時起動する機能もサポートされています。これにより、関連するすべての Bean の Lifecycle.start() コールバックが非同期的にトリガーされ、すべての Bean が戻るまで待機します。これは、タイムアウトなしで Bean を順次起動するデフォルトの方法の代替手段です。
- 導入:
- 3.0
- 作成者:
- Mark Fisher, Juergen Hoeller, Sebastien Deleuze
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明該当するすべての Lifecycle Bean: すでに作成されているすべてのシングルトンと、すべての SmartLifecycle Bean(lazy-init としてマークされている場合も含む)を取得します。protected int指定された Bean のライフサイクルフェーズを決定します。booleanこのコンポーネントが現在実行されているかどうかを確認します。voidonClose()自動停止コンポーネントなどのコンテキストクローズフェーズの通知。void自動起動コンポーネントなどのコンテキストリフレッシュの通知。voidsetBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。voidsetConcurrentStartupForPhase(int phase, long timeout) 対応するタイムアウトを使用して、特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) の同時起動に切り替えます。voidsetConcurrentStartupForPhases(MapSE<IntegerSE, LongSE> phasesWithTimeouts) 対応するタイムアウトを使用して、指定されたフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) ごとに同時起動に切り替えます。voidsetTimeoutForShutdownPhase(int phase, long timeout) 特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間を指定します。voidsetTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) 任意のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間をミリ秒単位で指定します。voidsetTimeoutsForShutdownPhases(MapSE<IntegerSE, LongSE> phasesWithTimeouts) 指定された各フェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間を指定します。voidstart()Lifecycleを実装し、まだ実行されていないすべての登録済み Bean を開始します。voidstop()Lifecycleを実装し 、現在実行中のすべての登録済み Bean を停止します。
フィールドの詳細
CHECKPOINT_PROPERTY_NAME
共通コンテキストチェックポイントのプロパティ名: "spring.context.checkpoint"。- 導入:
- 6.1
- 関連事項:
ON_REFRESH_VALUECore.checkpointRestore()- 定数フィールド値
EXIT_PROPERTY_NAME
コンテキストが特定のフェーズに達したときに JVM を終了するためのプロパティ名: "spring.context.exit"。- 導入:
- 6.1
- 関連事項:
ON_REFRESH_VALUE
コンテキストチェックポイントと終了プロパティの認識された値: "onRefresh"。- 導入:
- 6.1
- 関連事項:
コンストラクターの詳細
DefaultLifecycleProcessor
public DefaultLifecycleProcessor()
メソッドの詳細
setConcurrentStartupForPhases
対応するタイムアウトを使用して、指定されたフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) ごとに同時起動に切り替えます。メモ: デフォルトでは、各フェーズの起動はタイムアウトなしで順次実行されます。指定されたフェーズにタイムアウトを設定してこの setter を呼び出すと、各フェーズの Bean が同時に起動されるモードに切り替わり、いずれかのフェーズで対応するタイムアウトが満たされなかった場合は起動がキャンセルされます。
実際の同時起動では、通常は "bootstrapExecutor" Bean を通じて、アプリケーションコンテキストにブートストラップ
Executorを設定する必要があります。- パラメーター:
phasesWithTimeouts- 位相値(SmartLifecycle.getPhase()に一致)と対応するタイムアウト値のマップ (ミリ秒単位)- 導入:
- 6.2.6
- 関連事項:
setConcurrentStartupForPhase
public void setConcurrentStartupForPhase(int phase, long timeout) 対応するタイムアウトを使用して、特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) の同時起動に切り替えます。メモ: デフォルトでは、各フェーズの起動はタイムアウトなしで順次実行されます。指定されたフェーズにタイムアウトを指定してこの setter を呼び出すと、そのフェーズの Bean が同時に起動されるモードに切り替わり、そのフェーズに対応するタイムアウトが満たされない場合は起動がキャンセルされます。
実際の同時起動では、通常は "bootstrapExecutor" Bean を通じて、アプリケーションコンテキストにブートストラップ
Executorを設定する必要があります。- パラメーター:
phase- 位相値 (SmartLifecycle.getPhase()に一致する)timeout- 対応するタイムアウト値 (ミリ秒単位)- 導入:
- 6.2.6
- 関連事項:
setTimeoutsForShutdownPhases
指定された各フェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間を指定します。特定のタイムアウトが設定されていない場合は、シャットダウンフェーズごとのデフォルトのタイムアウトが適用されます: 6.2 の時点では 10000 ミリ秒 (10 秒)。
- パラメーター:
phasesWithTimeouts- 位相値(SmartLifecycle.getPhase()に一致)と対応するタイムアウト値のマップ (ミリ秒単位)- 導入:
- 6.2
- 関連事項:
setTimeoutForShutdownPhase
public void setTimeoutForShutdownPhase(int phase, long timeout) 特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間を指定します。特定のタイムアウトが設定されていない場合は、シャットダウンフェーズごとのデフォルトのタイムアウトが適用されます: 6.2 の時点では 10000 ミリ秒 (10 秒)。
- パラメーター:
phase- 位相値 (SmartLifecycle.getPhase()に一致する)timeout- 対応するタイムアウト値 (ミリ秒単位)- 導入:
- 6.2
- 関連事項:
setTimeoutPerShutdownPhase
public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) 任意のフェーズ (同じ「フェーズ」値を持つSmartLifecycleBean のグループ) のシャットダウンに割り当てられる最大時間をミリ秒単位で指定します。デフォルト値は、6.2 の時点で 10000 ミリ秒 (10 秒) です。
setBeanFactory
インターフェースからコピーされた説明:BeanFactoryAware所有ファクトリを Bean インスタンスに提供するコールバック。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()またはカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanFactoryAwareのsetBeanFactory - パラメーター:
beanFactory- 所有 BeanFactory(非null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
start
public void start()Lifecycleを実装し、まだ実行されていないすべての登録済み Bean を開始します。SmartLifecycleを実装する Bean は、その「フェーズ」内で開始され、すべてのフェーズは最低値から最高値の順に並べられます。SmartLifecycleを実装しないすべての Bean は、デフォルトのフェーズ 0 で開始されます。別の Bean の依存関係として宣言された Bean は、宣言されたフェーズに関係なく、依存する Bean の前に開始されます。stop
public void stop()Lifecycleを実装し 、現在実行中のすべての登録済み Bean を停止します。SmartLifecycleを実装する Bean は、その「フェーズ」内で停止し、すべてのフェーズは最高値から最低値へと順序付けられます。SmartLifecycleを実装しないすべての Bean は、デフォルトのフェーズ 0 で停止します。別の Bean に依存していると宣言された Bean は、宣言されたフェーズに関係なく、依存関係 Bean の前に停止します。onRefresh
public void onRefresh()インターフェースからコピーされた説明:LifecycleProcessor自動起動コンポーネントなどのコンテキストリフレッシュの通知。- 次で指定:
- インターフェース
LifecycleProcessorのonRefresh
onClose
public void onClose()インターフェースからコピーされた説明:LifecycleProcessor自動停止コンポーネントなどのコンテキストクローズフェーズの通知。- 次で指定:
- インターフェース
LifecycleProcessorのonClose
isRunning
public boolean isRunning()インターフェースからコピーされた説明:Lifecycleこのコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
trueを返します。getLifecycleBeans
該当するすべての Lifecycle Bean: すでに作成されているすべてのシングルトンと、すべての SmartLifecycle Bean(lazy-init としてマークされている場合も含む)を取得します。- 戻り値:
- キーとして Bean 名、値として Bean インスタンスを持つ、該当する Bean のマップ
getPhase
指定された Bean のライフサイクルフェーズを決定します。デフォルトの実装では、
Phasedインターフェースをチェックし、そうでない場合はデフォルトの 0 を使用します。他の / さらにポリシーを適用するためにオーバーライドできます。- パラメーター:
bean- Bean をイントロスペクトする- 戻り値:
- フェーズ (整数値)
- 関連事項: