public class DefaultContextCache extends ObjectSE implements ContextCache
ContextCache
API のデフォルト実装。 最大サイズと最も最近使用されていない(LRU)エビクションポリシーで構成された同期された Map
SE を使用して、ApplicationContext
インスタンスをキャッシュします。
最大サイズは、コンストラクターの引数として指定するか、システムプロパティまたは spring.test.context.cache.maxSize
という Spring プロパティを介して設定できます。
ContextCacheUtils.retrieveMaxCacheSize()
CONTEXT_CACHE_LOGGING_CATEGORY, DEFAULT_MAX_CONTEXT_CACHE_SIZE, MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME
コンストラクターと説明 |
---|
DefaultContextCache() ContextCacheUtils.retrieveMaxCacheSize() で取得した最大キャッシュサイズを使用して、新しい DefaultContextCache を作成します。 |
DefaultContextCache(int maxSize) 指定された最大キャッシュサイズを使用して、新しい DefaultContextCache を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | clear() キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。 |
void | clearStatistics() キャッシュのヒット数とミス数の統計をクリアします(つまり、カウンターをゼロにリセットします)。 |
boolean | contains(MergedContextConfiguration key) 指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。 |
ApplicationContext | get(MergedContextConfiguration key) 指定されたキーのキャッシュされた ApplicationContext を取得します。 |
int | getHitCount() このキャッシュの全体的なヒット数を取得します。 |
int | getMaxSize() このキャッシュの最大サイズを取得します。 |
int | getMissCount() このキャッシュの全体的なミス数を取得します。 |
int | getParentContextCount() キャッシュ内で現在追跡されている親コンテキストの数を判別します。 |
void | logStatistics() |
void | put(MergedContextConfiguration key, ApplicationContext context) 特定のキーにある ApplicationContext インスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。 |
void | remove(MergedContextConfiguration key, DirtiesContext.HierarchyMode hierarchyMode) 指定されたキーを持つコンテキストをキャッシュから削除し、 ConfigurableApplicationContext のインスタンスである場合は明示的に閉じます。 |
void | reset() 統計を含め、このキャッシュによって維持されているすべての状態をリセットします。 |
int | size() 現在キャッシュに格納されているコンテキストの数を確認します。 |
StringSE | toString() このキャッシュの実装型とその統計を含むテキスト文字列を生成します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public DefaultContextCache()
ContextCacheUtils.retrieveMaxCacheSize()
で取得した最大キャッシュサイズを使用して、新しい DefaultContextCache
を作成します。public DefaultContextCache(int maxSize)
DefaultContextCache
を作成します。maxSize
- 最大キャッシュサイズ IllegalArgumentExceptionSE
- 指定された maxSize
値が正でない場合 DefaultContextCache()
public boolean contains(MergedContextConfiguration key)
ContextCache
の contains
key
- コンテキストキー (非 null
)true
(キャッシュに指定されたキーのコンテキストが含まれている場合)@Nullable public ApplicationContext get(MergedContextConfiguration key)
ContextCache
の get
key
- コンテキストキー (非 null
)ApplicationContext
インスタンス、またはキャッシュに見つからない場合は null
ContextCache.remove(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)
public void put(MergedContextConfiguration key, ApplicationContext context)
ApplicationContext
インスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。ContextCache
の put
key
- コンテキストキー (非 null
)context
- ApplicationContext
インスタンス (非 null
)public void remove(MergedContextConfiguration key, @Nullable DirtiesContext.HierarchyMode hierarchyMode)
ConfigurableApplicationContext
のインスタンスである場合は明示的に閉じます。一般的に、このメソッドは、キャッシュからコンテキストを適切に削除するために(たとえば、カスタムエビクションポリシーが原因で)、シングルトン Bean の状態が変更され、コンテキストとの今後の相互作用に影響を与える可能性がある場合に呼び出す必要があります。
さらに、提供された HierarchyMode
のセマンティクスを尊重する必要があります。詳細については、DirtiesContext.HierarchyMode
の Javadoc を参照してください。
ContextCache
の remove
key
- コンテキストキー。null
hierarchyMode
- 階層モード。コンテキストが階層の一部ではない場合、null
である可能性があります public int size()
キャッシュに Integer.MAX_VALUE
要素より多く含まれている場合、このメソッドは Integer.MAX_VALUE
を返す必要があります。
ContextCache
の size
public int getMaxSize()
public int getParentContextCount()
ContextCache
の getParentContextCount
public int getHitCount()
ヒットとは、クエリされたキーに対して null 以外のコンテキストを返すキャッシュへのアクセスです。
ContextCache
の getHitCount
public int getMissCount()
ミスとは、クエリされたキーの null
コンテキストを返すキャッシュへのアクセスです。
ContextCache
の getMissCount
public void reset()
ContextCache
の reset
ContextCache.clear()
, ContextCache.clearStatistics()
public void clear()
ContextCache
の clear
public void clearStatistics()
ContextCache
の clearStatistics
public void logStatistics()
ContextCache
の統計を DEBUG
レベルで記録します。次の情報がログに記録されます。
ContextCache
実装の名前 ContextCache
の logStatistics
public StringSE toString()
このメソッドによって返される文字列には、logStatistics()
の契約に準拠するために必要なすべての情報が含まれています。
ObjectSE
の toStringSE