インターフェース 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_SIZE
static 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
- 関連事項:
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
レベルで記録します。次の情報がログに記録されます。