クラス 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
を構築します。メソッドのサマリー
修飾子と型メソッド説明void
closeContext
(MergedContextConfiguration mergedContextConfiguration, DirtiesContext.HierarchyMode hierarchyMode) 提供されたMergedContextConfiguration
のアプリケーションコンテキストをContextCache
から削除し、それがConfigurableApplicationContext
のインスタンスである場合は閉じます。protected ContextCache
このコンテキストローダーデリゲートによって使用されるContextCache
を取得します。boolean
isContextLoaded
(MergedContextConfiguration mergedContextConfiguration) loadContext
(MergedContextConfiguration mergedContextConfiguration) 指定されたMergedContextConfiguration
で構成されたContextLoader
に委譲することにより、提供されたMergedContextConfiguration
のアプリケーションコンテキストをロードします。protected ApplicationContext
loadContextInAotMode
(org.springframework.test.context.cache.AotMergedContextConfiguration aotMergedConfig) protected ApplicationContext
loadContextInternal
(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
- クローズするアプリケーションコンテキストのマージされたコンテキスト構成。非null
hierarchyMode
- 階層モード。コンテキストが階層の一部ではない場合、null
である可能性があります- 関連事項:
getContextCache
このコンテキストローダーデリゲートによって使用されるContextCache
を取得します。loadContextInternal
protected ApplicationContext loadContextInternal(MergedContextConfiguration mergedContextConfiguration) throws ExceptionSE 提供されたマージされたコンテキスト構成のApplicationContext
をロードします。SmartContextLoader
およびContextLoader
SPI の両方をサポートします。- 例外:
ExceptionSE
- アプリケーションコンテキストのロード中にエラーが発生した場合
loadContextInAotMode
protected ApplicationContext loadContextInAotMode(org.springframework.test.context.cache.AotMergedContextConfiguration aotMergedConfig) throws ExceptionSE - 例外:
ExceptionSE