インターフェース CacheAwareContextLoaderDelegate
- すべての既知の実装クラス:
DefaultCacheAwareContextLoaderDelegate
CacheAwareContextLoaderDelegate は、アプリケーションコンテキストのロードとクローズを担当し、バックグラウンドで ContextCache と透過的に対話します。 メモ: CacheAwareContextLoaderDelegate は、ContextLoader または SmartContextLoader インターフェースを継承しません。
- 導入:
- 3.2.2
- 作成者:
- Sam Brannen
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSEアプリケーションコンテキストのロード中に発生したエラーの失敗しきい値を構成するために使用されるシステムプロパティ: "spring.test.context.failure.threshold"。static final intアプリケーションコンテキストのロード試行中に発生したエラーのデフォルトの失敗しきい値: 1。メソッドのサマリー
修飾子と型メソッド説明voidcloseContext(MergedContextConfiguration mergedConfig, DirtiesContext.HierarchyMode hierarchyMode) 提供されたMergedContextConfigurationのアプリケーションコンテキストをContextCacheから削除し、それがConfigurableApplicationContextのインスタンスである場合は閉じます。default booleanisContextLoaded(MergedContextConfiguration mergedConfig) loadContext(MergedContextConfiguration mergedConfig) 指定されたMergedContextConfigurationで構成されたContextLoaderに委譲することにより、提供されたMergedContextConfigurationのアプリケーションコンテキストをロードします。
フィールドの詳細
DEFAULT_CONTEXT_FAILURE_THRESHOLD
static final int DEFAULT_CONTEXT_FAILURE_THRESHOLDアプリケーションコンテキストのロード試行中に発生したエラーのデフォルトの失敗しきい値: 1。- 導入:
- 6.1
- 関連事項:
CONTEXT_FAILURE_THRESHOLD_PROPERTY_NAME
アプリケーションコンテキストのロード中に発生したエラーの失敗しきい値を構成するために使用されるシステムプロパティ: "spring.test.context.failure.threshold"。あるいは、
SpringPropertiesメカニズムを介して構成することもできます。CacheAwareContextLoaderDelegateの実装は、この機能をサポートする必要はありません。詳細については、対応する実装のドキュメントを参照してください。ただし、Spring の標準CacheAwareContextLoaderDelegate実装はこの機能をサポートしていることに注意してください。
メソッドの詳細
isContextLoaded
提供されたMergedContextConfigurationのアプリケーションコンテキストがロードされている(つまり、ContextCacheに存在する)かどうかを判別します。このメソッドの実装は、副作用としてアプリケーションコンテキストをロードしてはなりません。さらに、このメソッドの実装は
ContextCache.logStatistics()を介してキャッシュ統計を記録するべきではありません。このメソッドのデフォルト実装は、常に
falseを返します。カスタムCacheAwareContextLoaderDelegate実装では、このメソッドをより意味のある実装でオーバーライドすることを強くお勧めします。Spring の標準CacheAwareContextLoaderDelegate実装がこのメソッドを適切にオーバーライドすることに注意してください。- パラメーター:
mergedConfig- アプリケーションコンテキストのロードに使用されるマージされたコンテキスト構成。非null- 戻り値:
true(アプリケーションコンテキストがロードされている場合)- 導入:
- 5.2
- 関連事項:
loadContext
指定されたMergedContextConfigurationで構成されたContextLoaderに委譲することにより、提供されたMergedContextConfigurationのアプリケーションコンテキストをロードします。ContextCacheにコンテキストが存在する場合は、単に返されます。それ以外の場合は、ロードされてキャッシュに保存され、返されます。Spring Framework 6.0 の時点で、このメソッドの実装は
SpringFactoriesLoaderメカニズムを介してApplicationContextFailureProcessor実装をロードし、ContextLoaderによってスローされた例外をキャッチし、例外がContextLoadExceptionのインスタンスである場合、コンテキストのロードの失敗を処理するために構成された各失敗プロセッサーに委譲する必要があります。Spring Framework 6.1 以降、このメソッドの実装では障害しきい値機能をサポートすることが推奨されています。具体的には、アプリケーションコンテキストのロードが繰り返し試行され、そのアプリケーションコンテキストのロードが常に失敗する場合 (たとえば、コンテキストの正常なロードを妨げる構成エラーが原因)、構成された失敗しきい値が以下の場合、このメソッドはプリエンプティブに
IllegalStateExceptionSE をスローする必要があります。超えてしまった。ContextCacheは、特定のコンテキストキャッシュキーの失敗カウントの追跡と増分をサポートしていることに注意してください。キャッシュ統計は、
ContextCache.logStatistics()を呼び出して記録する必要があります。- パラメーター:
mergedConfig- アプリケーションコンテキストのロードに使用するマージされたコンテキスト構成。非null- 戻り値:
- アプリケーションコンテキスト (非
null) - 例外:
IllegalStateExceptionSE- アプリケーションコンテキストの取得中または読み込み中にエラーが発生した場合- 関連事項:
closeContext
void closeContext(MergedContextConfiguration mergedConfig, @Nullable DirtiesContext.HierarchyMode hierarchyMode) 提供されたMergedContextConfigurationのアプリケーションコンテキストをContextCacheから削除し、それがConfigurableApplicationContextのインスタンスである場合は閉じます。コンテキストをキャッシュから削除するときは、提供された
HierarchyModeのセマンティクスを順守する必要があります。詳細については、DirtiesContext.HierarchyModeの Javadoc を参照してください。一般的に、このメソッドはシングルトン Bean の状態が変更された場合(コンテキストとの将来の対話に影響する可能性がある場合)、またはコンテキストをキャッシュから時期尚早に削除する必要がある場合にのみ呼び出す必要があります。
- パラメーター:
mergedConfig- クローズするアプリケーションコンテキストのマージされたコンテキスト構成。非nullhierarchyMode- 階層モード。コンテキストが階層の一部ではない場合、nullである可能性があります- 導入:
- 4.1
- 関連事項: