クラス AbstractCachingViewResolver
- 実装されているすべてのインターフェース:
Aware、ApplicationContextAware、ServletContextAware、ViewResolver
ViewResolver 実装の便利な基本クラス。一度解決された View オブジェクトをキャッシュします。これは、初期ビューの取得にどれほどのコストがかかっても、ビューの解決がパフォーマンスの問題にならないことを意味します。 サブクラスは、loadView(java.lang.String, java.util.Locale) テンプレートメソッドを実装して、特定のビュー名とロケールの View オブジェクトを構築する必要があります。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
ネストされたクラスの要約
ネストされたクラスフィールドのサマリー
フィールドクラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
loggerコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidすべてのキャッシュされたビューオブジェクトを削除して、ビューキャッシュ全体をクリアします。protected ViewcreateView(StringSE viewName, LocaleSE locale) 実際の View オブジェクトを作成します。ビューをキャッシュするかどうかを決定するフィルター関数を返します。protected ObjectSEgetCacheKey(StringSE viewName, LocaleSE locale) 指定されたビュー名と指定されたロケールのキャッシュキーを返します。intビューキャッシュの最大エントリ数を返します。booleanisCache()キャッシングが有効な場合に戻ります。boolean未解決のビューのキャッシュが有効かどうかを返します。protected abstract Viewサブクラスはこのメソッドを実装して、指定されたビューの View オブジェクトを構築する必要があります。voidremoveFromCache(StringSE viewName, LocaleSE locale) 特定のビューのキャッシュをクリアする機能を提供します。resolveViewName(StringSE viewName, LocaleSE locale) 指定されたビューを名前で解決します。voidsetCache(boolean cache) キャッシュを有効または無効にします。voidsetCacheFilter(AbstractCachingViewResolver.CacheFilter cacheFilter) ビューをキャッシュするかどうかを決定するフィルターを設定します。voidsetCacheLimit(int cacheLimit) ビューキャッシュのエントリの最大数を指定します。voidsetCacheUnresolved(boolean cacheUnresolved) 一度nullに解決されたビュー名がキャッシュされ、その後自動的にnullに解決されるかどうか。クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextクラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
フィールドの詳細
DEFAULT_CACHE_LIMIT
public static final int DEFAULT_CACHE_LIMITビューキャッシュのデフォルトの最大エントリ数: 1024。- 関連事項:
コンストラクターの詳細
AbstractCachingViewResolver
public AbstractCachingViewResolver()
メソッドの詳細
setCacheLimit
public void setCacheLimit(int cacheLimit) ビューキャッシュのエントリの最大数を指定します。デフォルトは 1024 です。getCacheLimit
public int getCacheLimit()ビューキャッシュの最大エントリ数を返します。setCache
public void setCache(boolean cache) キャッシュを有効または無効にします。これは、
"cacheLimit"プロパティをデフォルトの制限 (1024) または 0 にそれぞれ設定することと同等です。デフォルトは「true」: キャッシュが有効になっています。これは、デバッグと開発のためにのみ無効にしてください。
isCache
public boolean isCache()キャッシングが有効な場合に戻ります。setCacheUnresolved
public void setCacheUnresolved(boolean cacheUnresolved) 一度nullに解決されたビュー名がキャッシュされ、その後自動的にnullに解決されるかどうか。デフォルトは「true」: 未解決のビュー名はキャッシュされます。このフラグは、一般的な
"cache"フラグがデフォルトの "true" のままである場合にのみ適用されることに注意してください。特に興味深いのは、一部の
AbstractUrlBasedView実装 (FreeMarker など) がAbstractUrlBasedView.checkResource(Locale)を介して基になるリソースが存在するかどうかを確認する機能です。このフラグを "false" に設定すると、再表示される基になるリソースが通知され、使用されます。フラグを "true" に設定すると、1 つのチェックだけが行われます。isCacheUnresolved
public boolean isCacheUnresolved()未解決のビューのキャッシュが有効かどうかを返します。setCacheFilter
ビューをキャッシュするかどうかを決定するフィルターを設定します。デフォルトの動作は、すべてのビューをキャッシュすることです。
- 導入:
- 5.2
getCacheFilter
ビューをキャッシュするかどうかを決定するフィルター関数を返します。- 導入:
- 5.2
resolveViewName
インターフェースからコピーされた説明:ViewResolver指定されたビューを名前で解決します。メモ: ViewResolver チェーンを可能にするために、指定された名前のビューが定義されていない場合、ViewResolver は
nullを返す必要があります。ただし、これは必須ではありません: 一部の ViewResolvers は、常に指定された名前のビューオブジェクトを構築しようとし、nullを返すことができません(ビューの作成が失敗した場合は例外をスローします)。- 次で指定:
- インターフェース
ViewResolverのresolveViewName - パラメーター:
viewName- 解決するビューの名前locale- ビューを解決するロケール。国際化をサポートする ViewResolvers はこれを考慮する必要があります。- 戻り値:
- View オブジェクト。見つからない場合は
null(ViewResolver チェーニングを可能にするオプション) - 例外:
ExceptionSE- ビューを解決できない場合 (通常、実際の View オブジェクトの作成に問題がある場合)
getCacheKey
指定されたビュー名と指定されたロケールのキャッシュキーを返します。デフォルトは、ビュー名とロケールサフィックスで構成される文字列です。サブクラスでオーバーライドできます。
別のロケールは別のビューリソースにつながる可能性があるため、一般的にロケールを考慮する必要があります。
removeFromCache
特定のビューのキャッシュをクリアする機能を提供します。これは、開発者が実行時にビュー (FreeMarker テンプレートなど) を変更できる場合に便利です。その後、指定したビューのキャッシュをクリアする必要があります。
- パラメーター:
viewName- キャッシュされたビューオブジェクト(存在する場合)を削除する必要があるビューの名前locale- ビューオブジェクトを削除する必要があるロケール
clearCache
public void clearCache()すべてのキャッシュされたビューオブジェクトを削除して、ビューキャッシュ全体をクリアします。その後の resolve 呼び出しは、要求されたビューオブジェクトの再作成につながります。createView
実際の View オブジェクトを作成します。デフォルトの実装は
loadView(java.lang.String, java.util.Locale)に委譲します。これをオーバーライドして、サブクラスによって提供される実際のloadView実装に委譲する前に、特定のビュー名を特別な方法で解決できます。- パラメーター:
viewName- 取得するビューの名前locale- ビューを取得するロケール- 戻り値:
- View インスタンス。見つからない場合は
null(ViewResolver チェーニングを可能にするオプション) - 例外:
ExceptionSE- ビューを解決できなかった場合- 関連事項:
loadView
サブクラスはこのメソッドを実装して、指定されたビューの View オブジェクトを構築する必要があります。返された View オブジェクトは、この ViewResolver 基本クラスによってキャッシュされます。サブクラスは国際化をサポートすることを強制されません: 単にロケールパラメーターを無視しないサブクラス。
- パラメーター:
viewName- 取得するビューの名前locale- ビューを取得するロケール- 戻り値:
- View インスタンス。見つからない場合は
null(ViewResolver チェーニングを可能にするオプション) - 例外:
ExceptionSE- ビューを解決できなかった場合- 関連事項: