public interface ContextCache
ContextCache
は、Spring TestContext フレームワーク内で Spring ApplicationContexts
をキャッシュするための SPI を定義します。ContextCache
は、MergedContextConfiguration
インスタンスによってキー設定された ApplicationContexts
のキャッシュを維持し、最大サイズとカスタムエビクションポリシーで構成されている可能性があります。
コンテキストの初期化が複雑な場合、コンテキストキャッシングはパフォーマンスに大きなメリットがあります。Spring コンテキスト自体の初期化は通常非常に高速ですが、コンテキスト内の一部の Bean は、たとえば、JPA と連携するための組み込みデータベースまたは LocalContainerEntityManagerFactoryBean
— 初期化には数秒かかる場合があります。多くの場合、テストスイートまたは JVM プロセスごとに 1 回だけ初期化を実行することは理にかなっています。
ContextCacheUtils.retrieveMaxCacheSize()
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | CONTEXT_CACHE_LOGGING_CATEGORY ContextCache 統計のレポートに使用されるロギングカテゴリの名前。 |
static int | DEFAULT_MAX_CONTEXT_CACHE_SIZE コンテキストキャッシュのデフォルトの最大サイズ: 32。 |
static StringSE | MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME ContextCache の最大サイズを正の整数として構成するために使用されるシステムプロパティ。 |
修飾子と型 | メソッドと説明 |
---|---|
void | clear() キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。 |
void | clearStatistics() キャッシュのヒット数とミス数の統計をクリアします(つまり、カウンターをゼロにリセットします)。 |
boolean | contains(MergedContextConfiguration key) 指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。 |
ApplicationContext | get(MergedContextConfiguration key) 指定されたキーのキャッシュされた ApplicationContext を取得します。 |
int | getHitCount() このキャッシュの全体的なヒット数を取得します。 |
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() 現在キャッシュに格納されているコンテキストの数を確認します。 |
static final StringSE CONTEXT_CACHE_LOGGING_CATEGORY
ContextCache
統計のレポートに使用されるロギングカテゴリの名前。static final int DEFAULT_MAX_CONTEXT_CACHE_SIZE
MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME
, 定数フィールド値 static final StringSE MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME
ContextCache
の最大サイズを正の整数として構成するために使用されるシステムプロパティ。あるいは、SpringProperties
メカニズムを介して構成できます。ContextCache
の実装は、最大キャッシュサイズを実際にサポートする必要はないことに注意してください。詳細については、対応する実装のドキュメントを参照してください。
DEFAULT_MAX_CONTEXT_CACHE_SIZE
, 定数フィールド値 boolean contains(MergedContextConfiguration key)
key
- コンテキストキー (非 null
)true
(キャッシュに指定されたキーのコンテキストが含まれている場合)@Nullable ApplicationContext get(MergedContextConfiguration key)
key
- コンテキストキー (非 null
)ApplicationContext
インスタンス、またはキャッシュに見つからない場合は null
remove(org.springframework.test.context.MergedContextConfiguration, org.springframework.test.annotation.DirtiesContext.HierarchyMode)
void put(MergedContextConfiguration key, ApplicationContext context)
ApplicationContext
インスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。key
- コンテキストキー (非 null
)context
- ApplicationContext
インスタンス (非 null
)void remove(MergedContextConfiguration key, @Nullable DirtiesContext.HierarchyMode hierarchyMode)
ConfigurableApplicationContext
のインスタンスである場合は明示的に閉じます。一般的に、このメソッドは、キャッシュからコンテキストを適切に削除するために(たとえば、カスタムエビクションポリシーが原因で)、シングルトン Bean の状態が変更され、コンテキストとの今後の相互作用に影響を与える可能性がある場合に呼び出す必要があります。
さらに、提供された HierarchyMode
のセマンティクスを尊重する必要があります。詳細については、DirtiesContext.HierarchyMode
の Javadoc を参照してください。
key
- コンテキストキー。null
hierarchyMode
- 階層モード。コンテキストが階層の一部ではない場合、null
である可能性があります int size()
キャッシュに Integer.MAX_VALUE
要素より多く含まれている場合、このメソッドは Integer.MAX_VALUE
を返す必要があります。
int getParentContextCount()
int getHitCount()
ヒットとは、クエリされたキーに対して null 以外のコンテキストを返すキャッシュへのアクセスです。
int getMissCount()
ミスとは、クエリされたキーの null
コンテキストを返すキャッシュへのアクセスです。
void reset()
clear()
, clearStatistics()
void clear()
void clearStatistics()
void logStatistics()
ContextCache
の統計を DEBUG
レベルで記録します。次の情報がログに記録されます。