クラス 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
このコンポーネントが現在実行されているかどうかを確認します。void
onClose()
自動停止コンポーネントなどのコンテキストクローズフェーズの通知。void
自動起動コンポーネントなどのコンテキストリフレッシュの通知。void
setBeanFactory
(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。void
setConcurrentStartupForPhase
(int phase, long timeout) 対応するタイムアウトを使用して、特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) の同時起動に切り替えます。void
setConcurrentStartupForPhases
(MapSE<IntegerSE, LongSE> phasesWithTimeouts) 対応するタイムアウトを使用して、指定されたフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) ごとに同時起動に切り替えます。void
setTimeoutForShutdownPhase
(int phase, long timeout) 特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間を指定します。void
setTimeoutPerShutdownPhase
(long timeoutPerShutdownPhase) 任意のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間をミリ秒単位で指定します。void
setTimeoutsForShutdownPhases
(MapSE<IntegerSE, LongSE> phasesWithTimeouts) 指定された各フェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間を指定します。void
start()
Lifecycle
を実装し、まだ実行されていないすべての登録済み Bean を開始します。void
stop()
Lifecycle
を実装し 、現在実行中のすべての登録済み Bean を停止します。
フィールドの詳細
CHECKPOINT_PROPERTY_NAME
共通コンテキストチェックポイントのプロパティ名: "spring.context.checkpoint"。- 導入:
- 6.1
- 関連事項:
ON_REFRESH_VALUE
Core.checkpointRestore()
- 定数フィールド値
EXIT_PROPERTY_NAME
コンテキストが特定のフェーズに達したときに JVM を終了するためのプロパティ名: "spring.context.exit"。- 導入:
- 6.1
- 関連事項:
ON_REFRESH_VALUE
コンテキストチェックポイントと終了プロパティの認識された値: "onRefresh"。- 導入:
- 6.1
- 関連事項:
コンストラクターの詳細
DefaultLifecycleProcessor
public DefaultLifecycleProcessor()
メソッドの詳細
setConcurrentStartupForPhases
対応するタイムアウトを使用して、指定されたフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) ごとに同時起動に切り替えます。メモ: デフォルトでは、各フェーズの起動はタイムアウトなしで順次実行されます。指定されたフェーズにタイムアウトを設定してこの setter を呼び出すと、各フェーズの Bean が同時に起動されるモードに切り替わり、いずれかのフェーズで対応するタイムアウトが満たされなかった場合は起動がキャンセルされます。
実際の同時起動では、通常は "bootstrapExecutor" Bean を通じて、アプリケーションコンテキストにブートストラップ
Executor
を設定する必要があります。- パラメーター:
phasesWithTimeouts
- 位相値(SmartLifecycle.getPhase()
に一致)と対応するタイムアウト値のマップ (ミリ秒単位)- 導入:
- 6.2.6
- 関連事項:
setConcurrentStartupForPhase
public void setConcurrentStartupForPhase(int phase, long timeout) 対応するタイムアウトを使用して、特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) の同時起動に切り替えます。メモ: デフォルトでは、各フェーズの起動はタイムアウトなしで順次実行されます。指定されたフェーズにタイムアウトを指定してこの setter を呼び出すと、そのフェーズの Bean が同時に起動されるモードに切り替わり、そのフェーズに対応するタイムアウトが満たされない場合は起動がキャンセルされます。
実際の同時起動では、通常は "bootstrapExecutor" Bean を通じて、アプリケーションコンテキストにブートストラップ
Executor
を設定する必要があります。- パラメーター:
phase
- 位相値 (SmartLifecycle.getPhase()
に一致する)timeout
- 対応するタイムアウト値 (ミリ秒単位)- 導入:
- 6.2.6
- 関連事項:
setTimeoutsForShutdownPhases
指定された各フェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間を指定します。特定のタイムアウトが設定されていない場合は、シャットダウンフェーズごとのデフォルトのタイムアウトが適用されます: 6.2 の時点では 10000 ミリ秒 (10 秒)。
- パラメーター:
phasesWithTimeouts
- 位相値(SmartLifecycle.getPhase()
に一致)と対応するタイムアウト値のマップ (ミリ秒単位)- 導入:
- 6.2
- 関連事項:
setTimeoutForShutdownPhase
public void setTimeoutForShutdownPhase(int phase, long timeout) 特定のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間を指定します。特定のタイムアウトが設定されていない場合は、シャットダウンフェーズごとのデフォルトのタイムアウトが適用されます: 6.2 の時点では 10000 ミリ秒 (10 秒)。
- パラメーター:
phase
- 位相値 (SmartLifecycle.getPhase()
に一致する)timeout
- 対応するタイムアウト値 (ミリ秒単位)- 導入:
- 6.2
- 関連事項:
setTimeoutPerShutdownPhase
public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) 任意のフェーズ (同じ「フェーズ」値を持つSmartLifecycle
Bean のグループ) のシャットダウンに割り当てられる最大時間をミリ秒単位で指定します。デフォルト値は、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 をイントロスペクトする- 戻り値:
- フェーズ (整数値)
- 関連事項: