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