Cache
Module de cache intégré
Le module WebMVC a intégré le module de cache. Le cache de la méthode du contrôleur peut être facilement implémenté via l'annotation @Cacheable. Les portées APPLICATION et SESSION peuvent être prises en charge en configurant le paramètre scope_processor_class du module de cache ;
# 设置缓存作用域处理器 ymp.configs.cache.scope_processor_class=net.ymate.platform.webmvc.support.WebCacheScopeProcessor
Exemple de code : mettre en cache les résultats de l'exécution de la méthode au niveau de la session (SESSION) pendant 180 secondes ; la méthode du contrôleur et ne peut pas mettre en cache la vue IView Le résultat final de l'exécution de Sur les classes et méthodes du contrôleur annoté par ResponseCache
net.ymate.platform; webmvc.support.WebCacheProcessor
pour mettre en cache les résultats d'exécution de la vue,Mais il convient de noter que lors de son utilisation, veuillez vérifier le filtre
DispatchFilter
de web.xml et ne pas configurer <dispatcher>INCLUDE</dispatcher>
, sinon une boucle infinie se produira ; cacheName : nom du cache, paramètre facultatif, la valeur par défaut est par défaut ;@ResponseCache description du paramètre d'annotation :
key : clé de cache, paramètre facultatif, s'il n'est pas défini, il sera implémenté par l'interface IWebCacheProcessor. Généré automatiquement ;
processorClass : processeur de cache de vue personnalisé, paramètres facultatifs, s'il n'est pas fourni, la configuration par défaut des paramètres de l'interface IWebCacheProcessor est utilisé ; scope : portée du cache, paramètres facultatifs, les valeurs facultativessont APPLICATION, SESSION et DEFAULT , la valeur par défaut est DEFAULTtimeout : délai d'expiration des données du cache, paramètre facultatif, la valeur doit être supérieure ou égale à ; 0, 0 signifie que le cache par défaut est de 300 secondes ; useGZip : s'il faut utiliser la compression GZIP, la valeur par défaut est true
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
Configuration des paramètres de l'interface IWebCacheProcessor par défaut :
# 缓存处理器,可选参数 ymp.configs.webmvc.cache_processor_class=demo.WebCacheProc
net.ymate.platform.webmvc.support.WebCacheProcessor
Exemple de code :
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); } }🎜🎜🎜🎜🎜Description🎜 : Cette méthode d'interface renvoie une valeur booléenne, utilisée pour indiquer au framework WebMVC s'il doit continuer à traiter le vue du contrôleur ; 🎜🎜🎜