クラス 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 View
createView
(StringSE viewName, LocaleSE locale) 実際の View オブジェクトを作成します。ビューをキャッシュするかどうかを決定するフィルター関数を返します。protected ObjectSE
getCacheKey
(StringSE viewName, LocaleSE locale) 指定されたビュー名と指定されたロケールのキャッシュキーを返します。int
ビューキャッシュの最大エントリ数を返します。boolean
isCache()
キャッシングが有効な場合に戻ります。boolean
未解決のビューのキャッシュが有効かどうかを返します。protected abstract View
サブクラスはこのメソッドを実装して、指定されたビューの View オブジェクトを構築する必要があります。void
removeFromCache
(StringSE viewName, LocaleSE locale) 特定のビューのキャッシュをクリアする機能を提供します。resolveViewName
(StringSE viewName, LocaleSE locale) 指定されたビューを名前で解決します。void
setCache
(boolean cache) キャッシュを有効または無効にします。void
setCacheFilter
(AbstractCachingViewResolver.CacheFilter cacheFilter) ビューをキャッシュするかどうかを決定するフィルターを設定します。void
setCacheLimit
(int cacheLimit) ビューキャッシュのエントリの最大数を指定します。void
setCacheUnresolved
(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
- ビューを解決できなかった場合- 関連事項: