public class DefaultCacheAwareContextLoaderDelegate extends ObjectSE implements CacheAwareContextLoaderDelegate
CacheAwareContextLoaderDelegate インターフェースのデフォルト実装。 静的 DefaultContextCache を使用するには、DefaultCacheAwareContextLoaderDelegate() コンストラクターを呼び出します。それ以外の場合は、DefaultCacheAwareContextLoaderDelegate(ContextCache) を呼び出して、カスタム ContextCache 実装を提供します。
| コンストラクターと説明 |
|---|
DefaultCacheAwareContextLoaderDelegate() 静的 DefaultContextCache を使用して新しい DefaultCacheAwareContextLoaderDelegate を構築します。 |
DefaultCacheAwareContextLoaderDelegate(ContextCache contextCache) 提供された ContextCache を使用して新しい DefaultCacheAwareContextLoaderDelegate を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | closeContext(MergedContextConfiguration mergedContextConfiguration, DirtiesContext.HierarchyMode hierarchyMode) 提供された MergedContextConfiguration のアプリケーションコンテキストを ContextCache から削除し、それが ConfigurableApplicationContext のインスタンスである場合は閉じます。 |
protected ContextCache | getContextCache() このコンテキストローダーデリゲートによって使用される ContextCache を取得します。 |
boolean | isContextLoaded(MergedContextConfiguration mergedContextConfiguration) |
ApplicationContext | loadContext(MergedContextConfiguration mergedContextConfiguration) 指定された MergedContextConfiguration で構成された ContextLoader に委譲することにより、提供された MergedContextConfiguration のアプリケーションコンテキストをロードします。 |
protected ApplicationContext | loadContextInternal(MergedContextConfiguration mergedContextConfiguration) 提供されたマージされたコンテキスト構成の ApplicationContext をロードします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic DefaultCacheAwareContextLoaderDelegate()
DefaultContextCache を使用して新しい DefaultCacheAwareContextLoaderDelegate を構築します。このデフォルトのキャッシュは静的なので、同じ JVM プロセス内で同じ一意のコンテキスト構成を宣言する後続のすべてのテストで、各コンテキストをキャッシュして再利用できます。
public DefaultCacheAwareContextLoaderDelegate(ContextCache contextCache)
ContextCache を使用して新しい DefaultCacheAwareContextLoaderDelegate を構築します。protected ContextCache getContextCache()
ContextCache を取得します。protected ApplicationContext loadContextInternal(MergedContextConfiguration mergedContextConfiguration) throws ExceptionSE
ApplicationContext をロードします。SmartContextLoader および ContextLoader SPI の両方をサポートします。
ExceptionSE - アプリケーションコンテキストのロード中にエラーが発生した場合 public boolean isContextLoaded(MergedContextConfiguration mergedContextConfiguration)
CacheAwareContextLoaderDelegateMergedContextConfiguration のアプリケーションコンテキストがロードされている(つまり、ContextCache に存在する)かどうかを判別します。 このメソッドの実装は、副作用としてアプリケーションコンテキストをロードしてはなりません。さらに、このメソッドの実装は ContextCache.logStatistics() を介してキャッシュ統計を記録するべきではありません。
このメソッドのデフォルト実装は、常に false を返します。カスタム CacheAwareContextLoaderDelegate 実装では、このメソッドをより意味のある実装でオーバーライドすることを強くお勧めします。Spring の標準 CacheAwareContextLoaderDelegate 実装がこのメソッドを適切にオーバーライドすることに注意してください。
CacheAwareContextLoaderDelegate の isContextLoaded mergedContextConfiguration - アプリケーションコンテキストのロードに使用されるマージされたコンテキスト構成。非 nulltrue (アプリケーションコンテキストがロードされている場合)CacheAwareContextLoaderDelegate.loadContext(org.springframework.test.context.MergedContextConfiguration), CacheAwareContextLoaderDelegate.closeContext(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)public ApplicationContext loadContext(MergedContextConfiguration mergedContextConfiguration)
CacheAwareContextLoaderDelegateMergedContextConfiguration で構成された ContextLoader に委譲することにより、提供された MergedContextConfiguration のアプリケーションコンテキストをロードします。ContextCache にコンテキストが存在する場合は、単に返されます。それ以外の場合は、ロードされてキャッシュに保存され、返されます。
キャッシュ統計は、ContextCache.logStatistics() を呼び出して記録する必要があります。
CacheAwareContextLoaderDelegate の loadContext mergedContextConfiguration - アプリケーションコンテキストのロードに使用するマージされたコンテキスト構成。非 nullnull)CacheAwareContextLoaderDelegate.isContextLoaded(org.springframework.test.context.MergedContextConfiguration), CacheAwareContextLoaderDelegate.closeContext(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)public void closeContext(MergedContextConfiguration mergedContextConfiguration, @Nullable DirtiesContext.HierarchyMode hierarchyMode)
CacheAwareContextLoaderDelegateMergedContextConfiguration のアプリケーションコンテキストを ContextCache から削除し、それが ConfigurableApplicationContext のインスタンスである場合は閉じます。 コンテキストをキャッシュから削除するときは、提供された HierarchyMode のセマンティクスを順守する必要があります。詳細については、DirtiesContext.HierarchyMode の Javadoc を参照してください。
一般的に、このメソッドはシングルトン Bean の状態が変更された場合(コンテキストとの将来の対話に影響する可能性がある場合)、またはコンテキストをキャッシュから時期尚早に削除する必要がある場合にのみ呼び出す必要があります。
CacheAwareContextLoaderDelegate の closeContext mergedContextConfiguration - クローズするアプリケーションコンテキストのマージされたコンテキスト構成。非 nullhierarchyMode - 階層モード。コンテキストが階層の一部ではない場合、null である可能性があります CacheAwareContextLoaderDelegate.isContextLoaded(org.springframework.test.context.MergedContextConfiguration), CacheAwareContextLoaderDelegate.loadContext(org.springframework.test.context.MergedContextConfiguration)