クラス DefaultCacheAwareContextLoaderDelegate
- 実装されたすべてのインターフェース:
CacheAwareContextLoaderDelegate
CacheAwareContextLoaderDelegate
戦略のデフォルト実装。 静的 DefaultContextCache
を使用するには、DefaultCacheAwareContextLoaderDelegate()
コンストラクターを呼び出します。それ以外の場合は、DefaultCacheAwareContextLoaderDelegate(ContextCache)
を呼び出して、カスタム ContextCache
実装を提供します。
Spring Framework 6.0 の時点で、このクラスは SpringFactoriesLoader
メカニズムを介して ApplicationContextFailureProcessor
実装をロードし、loadContext(MergedContextConfiguration)
でそれらに委譲して、コンテキストのロードエラーを処理します。
Spring Framework 6.1 以降、このクラスは CacheAwareContextLoaderDelegate.loadContext(org.springframework.test.context.MergedContextConfiguration)
で説明されている障害しきい値機能をサポートし、使用するしきい値の取得を ContextCacheUtils.retrieveContextFailureThreshold()
に委譲します。
- 導入:
- 4.1
- 作成者:
- Sam Brannen
フィールドサマリー
インターフェース org.springframework.test.context.CacheAwareContextLoaderDelegate から継承されたフィールド
CONTEXT_FAILURE_THRESHOLD_PROPERTY_NAME, DEFAULT_CONTEXT_FAILURE_THRESHOLD
コンストラクターのサマリー
コンストラクターコンストラクター説明静的DefaultContextCache
を使用して新しいDefaultCacheAwareContextLoaderDelegate
を構築します。DefaultCacheAwareContextLoaderDelegate
(ContextCache contextCache) 提供されたContextCache
とデフォルトまたはユーザー設定のコンテキスト障害しきい値を使用して、新しいDefaultCacheAwareContextLoaderDelegate
を構築します。方法の概要
修飾子と型メソッド説明void
closeContext
(MergedContextConfiguration mergedConfig, DirtiesContext.HierarchyMode hierarchyMode) 提供されたMergedContextConfiguration
のアプリケーションコンテキストをContextCache
から削除し、それがConfigurableApplicationContext
のインスタンスである場合は閉じます。protected ContextCache
このコンテキストローダーデリゲートによって使用されるContextCache
を取得します。boolean
isContextLoaded
(MergedContextConfiguration mergedConfig) loadContext
(MergedContextConfiguration mergedConfig) 指定されたMergedContextConfiguration
で構成されたContextLoader
に委譲することにより、提供されたMergedContextConfiguration
のアプリケーションコンテキストをロードします。protected ApplicationContext
loadContextInAotMode
(org.springframework.test.context.cache.AotMergedContextConfiguration aotMergedConfig) protected ApplicationContext
loadContextInternal
(MergedContextConfiguration mergedConfig) 提供されたマージされたコンテキスト構成のApplicationContext
をロードします。
コンストラクターの詳細
DefaultCacheAwareContextLoaderDelegate
public DefaultCacheAwareContextLoaderDelegate()静的DefaultContextCache
を使用して新しいDefaultCacheAwareContextLoaderDelegate
を構築します。デフォルトのキャッシュは静的であるため、各コンテキストをキャッシュして、同じ JVM プロセス内で同じ一意のコンテキスト設定を宣言する後続のすべてのテストで再利用できます。
DefaultCacheAwareContextLoaderDelegate
提供されたContextCache
とデフォルトまたはユーザー設定のコンテキスト障害しきい値を使用して、新しいDefaultCacheAwareContextLoaderDelegate
を構築します。
メソッドの詳細
isContextLoaded
インターフェースからコピーされた説明:CacheAwareContextLoaderDelegate
提供されたMergedContextConfiguration
のアプリケーションコンテキストがロードされている(つまり、ContextCache
に存在する)かどうかを判別します。このメソッドの実装は、副作用としてアプリケーションコンテキストをロードしてはなりません。さらに、このメソッドの実装は
ContextCache.logStatistics()
を介してキャッシュ統計を記録するべきではありません。このメソッドのデフォルト実装は、常に
false
を返します。カスタムCacheAwareContextLoaderDelegate
実装では、このメソッドをより意味のある実装でオーバーライドすることを強くお勧めします。Spring の標準CacheAwareContextLoaderDelegate
実装がこのメソッドを適切にオーバーライドすることに注意してください。- 次で指定:
- インターフェース
CacheAwareContextLoaderDelegate
のisContextLoaded
- パラメーター:
mergedConfig
- アプリケーションコンテキストのロードに使用されるマージされたコンテキスト構成。非null
- 戻り値:
true
(アプリケーションコンテキストがロードされている場合)- 関連事項:
loadContext
インターフェースからコピーされた説明:CacheAwareContextLoaderDelegate
指定されたMergedContextConfiguration
で構成されたContextLoader
に委譲することにより、提供されたMergedContextConfiguration
のアプリケーションコンテキストをロードします。ContextCache
にコンテキストが存在する場合は、単に返されます。それ以外の場合は、ロードされてキャッシュに保存され、返されます。Spring Framework 6.0 の時点で、このメソッドの実装は
SpringFactoriesLoader
メカニズムを介してApplicationContextFailureProcessor
実装をロードし、ContextLoader
によってスローされた例外をキャッチし、例外がContextLoadException
のインスタンスである場合、コンテキストのロードの失敗を処理するために構成された各失敗プロセッサーに委譲する必要があります。Spring Framework 6.1 以降、このメソッドの実装では障害しきい値機能をサポートすることが推奨されています。具体的には、アプリケーションコンテキストのロードが繰り返し試行され、そのアプリケーションコンテキストのロードが常に失敗する場合 (たとえば、コンテキストの正常なロードを妨げる構成エラーが原因)、構成された失敗しきい値が以下の場合、このメソッドはプリエンプティブに
IllegalStateException
SE をスローする必要があります。超えてしまった。ContextCache
は、特定のコンテキストキャッシュキーの失敗カウントの追跡と増分をサポートしていることに注意してください。キャッシュ統計は、
ContextCache.logStatistics()
を呼び出して記録する必要があります。- 次で指定:
- インターフェース
CacheAwareContextLoaderDelegate
のloadContext
- パラメーター:
mergedConfig
- アプリケーションコンテキストのロードに使用するマージされたコンテキスト構成。非null
- 戻り値:
- アプリケーションコンテキスト (非
null
) - 関連事項:
CacheAwareContextLoaderDelegate.isContextLoaded(org.springframework.test.context.MergedContextConfiguration)
CacheAwareContextLoaderDelegate.closeContext(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)
CacheAwareContextLoaderDelegate.CONTEXT_FAILURE_THRESHOLD_PROPERTY_NAME
closeContext
public void closeContext(MergedContextConfiguration mergedConfig, @Nullable DirtiesContext.HierarchyMode hierarchyMode) インターフェースからコピーされた説明:CacheAwareContextLoaderDelegate
提供されたMergedContextConfiguration
のアプリケーションコンテキストをContextCache
から削除し、それがConfigurableApplicationContext
のインスタンスである場合は閉じます。コンテキストをキャッシュから削除するときは、提供された
HierarchyMode
のセマンティクスを順守する必要があります。詳細については、DirtiesContext.HierarchyMode
の Javadoc を参照してください。一般的に、このメソッドはシングルトン Bean の状態が変更された場合(コンテキストとの将来の対話に影響する可能性がある場合)、またはコンテキストをキャッシュから時期尚早に削除する必要がある場合にのみ呼び出す必要があります。
- 次で指定:
- インターフェース
CacheAwareContextLoaderDelegate
のcloseContext
- パラメーター:
mergedConfig
- クローズするアプリケーションコンテキストのマージされたコンテキスト構成。非null
hierarchyMode
- 階層モード。コンテキストが階層の一部ではない場合、null
である可能性があります- 関連事項:
getContextCache
このコンテキストローダーデリゲートによって使用されるContextCache
を取得します。loadContextInternal
protected ApplicationContext loadContextInternal(MergedContextConfiguration mergedConfig) throws ExceptionSE 提供されたマージされたコンテキスト構成のApplicationContext
をロードします。SmartContextLoader
およびContextLoader
SPI の両方をサポートします。- 例外:
ExceptionSE
- アプリケーションコンテキストのロード中にエラーが発生した場合
loadContextInAotMode
protected ApplicationContext loadContextInAotMode(org.springframework.test.context.cache.AotMergedContextConfiguration aotMergedConfig) throws ExceptionSE - 例外:
ExceptionSE