キャッシュ
統合されたキャッシュ モジュール
WebMVC モジュールには、キャッシュ モジュールが統合されています。コントローラー メソッドのキャッシュは、キャッシュ モジュールのscope_processor_class パラメーターを設定することで簡単に実装できます。
# 设置缓存作用域处理器 ymp.configs.cache.scope_processor_class=net.ymate.platform.webmvc.support.WebCacheScopeProcessor
サンプルコード: メソッドの実行結果をセッション (SESSION) レベルで 180 秒間キャッシュします。コントローラー メソッドであり、IView ビューをキャッシュできません。 ResponseCache によって注釈が付けられたコントローラー クラスおよびメソッドの最終実行結果: フレームワークは、IWebCacheProcessor インターフェイス net.ymate.platform のデフォルト実装を提供します。 webmvc.support.WebCacheProcessor
は、ビューの実行結果をキャッシュします。
ただし、これを使用する場合は、web.xml のフィルター DispatchFilter
を確認し、設定しないでください。 <dispatcher>INCLUDE</dispatcher>
、それ以外の場合は無限ループが発生します。
cacheName: キャッシュ名、オプションのパラメータ、デフォルト値は次のとおりです。デフォルト;key: キャッシュ キー、オプションのパラメーター、設定されていない場合は、IWebCacheProcessor インターフェイスによって実装されます。自動的に生成されます。
processorClass: カスタム ビュー キャッシュ プロセッサー、オプションのパラメーター、指定されていない場合、デフォルトの IWebCacheProcessor インターフェイスのパラメーター構成は次のとおりです。 used;
scope: キャッシュ スコープ、オプションのパラメーター、オプションの値は APPLICATION、SESSION、および DEFAULT です。デフォルトは DEFAULT です。 timeout: キャッシュ データのタイムアウト、オプションのパラメーター、値は以上である必要があります。 0、0 はデフォルトのキャッシュが 300 秒であることを意味します。
useGZip: GZIP 圧縮を使用するかどうか、デフォルト値は true です
デフォルトの IWebCacheProcessor インターフェイス パラメータ設定:
net.ymate.platform.webmvc.support.WebCacheProcessor
用以缓存视图执行结果,
但需要注意的是当使用它时, 请检查web.xml的过滤器DispatchFilter
中不要配置<dispatcher>INCLUDE</dispatcher>
,否则将会产生死循环;
@ResponseCache注解参数说明:
cacheName:缓存名称, 可选参数, 默认值为default;
key:缓存Key, 可选参数, 若未设置则由IWebCacheProcessor接口实现自动生成;
processorClass:自定义视图缓存处理器, 可选参数,若未提供则采用默认IWebCacheProcessor接口参数配置;
scope:缓存作用域, 可选参数,可选值为APPLICATION、SESSION和DEFAULT,默认为DEFAULT;
timeout:缓存数据超时时间, 可选参数,数值必须大于等于0,为0表示默认缓存300秒;
useGZip:是否使用GZIP压缩, 默认值为true
默认IWebCacheProcessor接口参数配置:
@Controller @RequestMapping("/demo") @Cacheable public class CacheController { @RequestMapping("/cache") @Cacheable(scope = ICaches.Scope.SESSION, timeout = 180) public IView doCacheable(@RequestParam String content) throws Exception { // ...... return View.textView("Content: " + content); } }
框架默认提供了该接口的实现类:
net.ymate.platform.webmvc.support.WebCacheProcessor
# 缓存处理器,可选参数 ymp.configs.webmvc.cache_processor_class=demo.WebCacheProcフレームワークは、次の実装クラスを提供します。デフォルトではこのインターフェイス:
net.ymate.platform.webmvc.support.WebCacheProcessor
Cache キャッシュ モジュールに基づいて作成されます @ResponseCache アノテーションの Scope.DEFAULT スコープはブラウザ関連の設定をサポートしますLast-Modified など、GZIP 圧縮などの機能をサポートします
package demo; import net.ymate.platform.webmvc.*; import net.ymate.platform.webmvc.view.IView; public class WebCacheProc implements IWebCacheProcessor { public boolean processResponseCache(IWebMvc owner, ResponseCache responseCache, IRequestContext requestContext, IView resultView) throws Exception { // 这里是对View视图自定义处理逻辑... // 完整的示例代码请查看net.ymate.platform.webmvc.support.WebCacheProcessor类源码 return false; } } @Controller @RequestMapping("/demo") public class CacheController { @RequestMapping("/cache") @ResponseCache public IView doCacheable(@RequestParam String content) throws Exception { // ...... return View.textView("Content: " + content); } }