インターフェース ContextCache
- すべての既知の実装クラス:
- DefaultContextCache
ContextCache は、Spring TestContext フレームワーク内で Spring ApplicationContexts をキャッシュするための SPI を定義します。ContextCache は、MergedContextConfiguration インスタンスによってキー設定された ApplicationContexts のキャッシュを維持し、最大サイズとカスタムエビクションポリシーで構成されている可能性があります。
Spring Framework 6.1 以降、この SPI には、障害数の追跡と増分のためのオプションのサポートが含まれています。
根拠
 コンテキストの初期化が複雑な場合、コンテキストキャッシングはパフォーマンスに大きなメリットをもたらす可能性があります。Spring コンテキスト自体の初期化は通常非常に高速ですが、コンテキスト内の一部の Bean- たとえば、JPA を操作するための組み込みデータベースまたは LocalContainerEntityManagerFactoryBean - 初期化には数秒かかる場合があります。多くの場合、テストスイートまたは JVM プロセスごとに 1 回だけその初期化を実行することが理にかなっています。
- 導入:
- 4.2
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
- フィールドのサマリーフィールド修飾子と型フィールド説明- static final StringSE- ContextCache統計のレポートに使用されるロギングカテゴリの名前。- static final intコンテキストキャッシュのデフォルトの最大サイズ: 32。- static final StringSE- ContextCacheの最大サイズを正の整数として構成するために使用されるシステムプロパティ: "spring.test.context.cache.maxSize"。
- メソッドのサマリー修飾子と型メソッド説明- void- clear()キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。- void- boolean指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。指定されたキーのキャッシュされた- ApplicationContextを取得します。- default int指定されたキーの失敗回数を取得します。- intこのキャッシュの全体的なヒット数を取得します。- intこのキャッシュの全体的なミス数を取得します。- intキャッシュ内で現在追跡されている親コンテキストの数を判別します。- default void指定されたキーの失敗回数を増やします。- void- void- put- (MergedContextConfiguration key, ApplicationContext context) 特定のキーにある- ApplicationContextインスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。- void- remove- (MergedContextConfiguration key, DirtiesContext.HierarchyMode hierarchyMode) 指定されたキーを持つコンテキストをキャッシュから削除し、- ConfigurableApplicationContextのインスタンスである場合は明示的に閉じます。- void- reset()統計を含め、このキャッシュによって維持されているすべての状態をリセットします。- int- size()現在キャッシュに格納されているコンテキストの数を確認します。
- フィールドの詳細- CONTEXT_CACHE_LOGGING_CATEGORY- ContextCache統計のレポートに使用されるロギングカテゴリの名前。- 関連事項:
 
- DEFAULT_MAX_CONTEXT_CACHE_SIZEstatic final int DEFAULT_MAX_CONTEXT_CACHE_SIZEコンテキストキャッシュのデフォルトの最大サイズ: 32。- 導入:
- 4.3
- 関連事項:
 
- MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME- ContextCacheの最大サイズを正の整数として構成するために使用されるシステムプロパティ: "spring.test.context.cache.maxSize"。- あるいは、 - SpringPropertiesメカニズムを介して構成することもできます。- ContextCacheの実装は、最大キャッシュサイズを実際にサポートする必要はないことに注意してください。詳細については、対応する実装のドキュメントを参照してください。- 導入:
- 4.3
- 関連事項:
 
 
- メソッドの詳細- contains指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。- パラメーター:
- key- コンテキストキー (非- null)
- 戻り値:
- true(キャッシュに指定されたキーのコンテキストが含まれている場合)
 
- get- パラメーター:
- key- コンテキストキー (非- null)
- 戻り値:
-  対応する ApplicationContextインスタンス、またはキャッシュに見つからない場合はnull
- 関連事項:
 
- put特定のキーにある- ApplicationContextインスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。- パラメーター:
- key- コンテキストキー (非- null)
- context-- ApplicationContextインスタンス (非- null)
 
- remove指定されたキーを持つコンテキストをキャッシュから削除し、- ConfigurableApplicationContextのインスタンスである場合は明示的に閉じます。- 一般的に、このメソッドは、キャッシュからコンテキストを適切に削除するために(たとえば、カスタムエビクションポリシーが原因で)、シングルトン Bean の状態が変更され、コンテキストとの今後の相互作用に影響を与える可能性がある場合に呼び出す必要があります。 - さらに、提供された - HierarchyModeのセマンティクスを尊重する必要があります。詳細については、- DirtiesContext.HierarchyModeの Javadoc を参照してください。- パラメーター:
- key- コンテキストキー。- null
- hierarchyMode- 階層モード。コンテキストが階層の一部ではない場合、- nullである可能性があります
 
- getFailureCount指定されたキーの失敗回数を取得します。- 失敗とは、指定されたキーの - ApplicationContextをロードしようとして例外が発生することです。- このメソッドのデフォルト実装は常に - 0を返します。具体的な実装では、このメソッドと- incrementFailureCount(MergedContextConfiguration)を適切な動作でオーバーライドすることを強くお勧めします。Spring の標準- ContextContext実装は、これらのメソッドを適切にオーバーライドすることに注意してください。- パラメーター:
- key- コンテキストキー。- null
- 導入:
- 6.1
- 関連事項:
 
- incrementFailureCount指定されたキーの失敗回数を増やします。- このメソッドのデフォルトの実装では何も行われません。具体的な実装では、このメソッドと - getFailureCount(MergedContextConfiguration)を適切な動作でオーバーライドすることを強くお勧めします。Spring の標準- ContextContext実装は、これらのメソッドを適切にオーバーライドすることに注意してください。- パラメーター:
- key- コンテキストキー。- null
- 導入:
- 6.1
- 関連事項:
 
- sizeint size()現在キャッシュに格納されているコンテキストの数を確認します。- キャッシュに - Integer.MAX_VALUE要素より多く含まれている場合、このメソッドは- Integer.MAX_VALUEを返す必要があります。
- getParentContextCountint getParentContextCount()キャッシュ内で現在追跡されている親コンテキストの数を判別します。
- getHitCountint getHitCount()このキャッシュの全体的なヒット数を取得します。- ヒットとは、クエリされたキーに対して null 以外のコンテキストを返すキャッシュへのアクセスです。 
- getMissCountint getMissCount()このキャッシュの全体的なミス数を取得します。- ミスとは、クエリされたキーの - nullコンテキストを返すキャッシュへのアクセスです。
- resetvoid reset()統計を含め、このキャッシュによって維持されているすべての状態をリセットします。
- clearvoid clear()キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。
- clearStatisticsvoid clearStatistics()
- logStatisticsvoid logStatistics()"org.springframework.test.context.cache" ロギングカテゴリを使用して、この- ContextCacheの統計を- DEBUGレベルで記録します。- 次の情報がログに記録されます。