インターフェース ContextCache
- すべての既知の実装クラス:
DefaultContextCache
ContextCache は、Spring TestContext フレームワーク内で Spring ApplicationContexts をキャッシュするための SPI を定義します。ContextCache は、MergedContextConfiguration インスタンスによってキー設定された ApplicationContexts のキャッシュを維持し、最大サイズとカスタムエビクションポリシーで構成されている可能性があります。
根拠
コンテキストの初期化が複雑な場合、コンテキストキャッシングはパフォーマンスに大きなメリットをもたらす可能性があります。Spring コンテキスト自体の初期化は通常非常に高速ですが、コンテキスト内の一部の Bean- たとえば、JPA を操作するための組み込みデータベースまたは LocalContainerEntityManagerFactoryBean - 初期化には数秒かかる場合があります。多くの場合、テストスイートまたは JVM プロセスごとに 1 回だけその初期化を実行することが理にかなっています。
- 導入:
- 4.2
- 作成者:
- Sam Brannen, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSEContextCache統計のレポートに使用されるロギングカテゴリの名前。static final intコンテキストキャッシュのデフォルトの最大サイズ: 32。static final StringSEContextCacheの最大サイズを正の整数として構成するために使用されるシステムプロパティ。メソッドのサマリー
修飾子と型メソッド説明voidclear()キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。voidboolean指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。指定されたキーのキャッシュされたApplicationContextを取得します。intこのキャッシュの全体的なヒット数を取得します。intこのキャッシュの全体的なミス数を取得します。intキャッシュ内で現在追跡されている親コンテキストの数を判別します。voidvoidput(MergedContextConfiguration key, ApplicationContext context) 特定のキーにあるApplicationContextインスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。voidremove(MergedContextConfiguration key, DirtiesContext.HierarchyMode hierarchyMode) 指定されたキーを持つコンテキストをキャッシュから削除し、ConfigurableApplicationContextのインスタンスである場合は明示的に閉じます。voidreset()統計を含め、このキャッシュによって維持されているすべての状態をリセットします。intsize()現在キャッシュに格納されているコンテキストの数を確認します。
フィールドの詳細
CONTEXT_CACHE_LOGGING_CATEGORY
ContextCache統計のレポートに使用されるロギングカテゴリの名前。- 関連事項:
DEFAULT_MAX_CONTEXT_CACHE_SIZE
static final int DEFAULT_MAX_CONTEXT_CACHE_SIZEコンテキストキャッシュのデフォルトの最大サイズ: 32。- 導入:
- 4.3
- 関連事項:
MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME
ContextCacheの最大サイズを正の整数として構成するために使用されるシステムプロパティ。あるいは、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- コンテキストキー。nullhierarchyMode- 階層モード。コンテキストが階層の一部ではない場合、nullである可能性があります
size
int size()現在キャッシュに格納されているコンテキストの数を確認します。キャッシュに
Integer.MAX_VALUE要素より多く含まれている場合、このメソッドはInteger.MAX_VALUEを返す必要があります。getParentContextCount
int getParentContextCount()キャッシュ内で現在追跡されている親コンテキストの数を判別します。getHitCount
int getHitCount()このキャッシュの全体的なヒット数を取得します。ヒットとは、クエリされたキーに対して null 以外のコンテキストを返すキャッシュへのアクセスです。
getMissCount
int getMissCount()このキャッシュの全体的なミス数を取得します。ミスとは、クエリされたキーの
nullコンテキストを返すキャッシュへのアクセスです。reset
void reset()統計を含め、このキャッシュによって維持されているすべての状態をリセットします。clear
void clear()キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。clearStatistics
void clearStatistics()logStatistics
void logStatistics()"org.springframework.test.context.cache" ロギングカテゴリを使用して、このContextCacheの統計をDEBUGレベルで記録します。次の情報がログに記録されます。