可能是最全的Thymeleaf参考手册(十五):模板缓存

 

Thymeleaf的工作要归功于一组解析器(用于标记和文本),该解析器将模板解析为事件序列(打开标签,文本,关闭标签,注释等)和一系列处理器(每种需要一种行为)应用–修改模板解析的事件序列,以便通过将原始模板与我们的数据结合来创建我们期望的结果。

默认情况下,它还包括存储已解析模板的缓存;在处理模板文件之前读取和解析模板文件所导致的事件顺序。在Web应用程序中工作时,此功能特别有用,它基于以下概念:

  • 输入/输出几乎始终是所有应用程序中最慢的部分。相比之下,内存中处理非常快。

  • 克隆现有的内存中事件序列总是比读取模板文件,对其进行解析并为其创建新的事件序列要快得多。

  • Web应用程序通常只有几十个模板。

  • 模板文件大小不一,在应用程序运行时不会被修改。

所有这些都导致了这样的想法,即在不浪费大量内存的情况下在Web应用程序中缓存最常用的模板是可行的,并且这将节省大量时间,而这些时间将花费在少量文件的输入/输出操作上实际上,它永远不会改变。

以及我们如何控制此缓存?首先,我们已经了解到可以在模板解析器上启用或禁用它,甚至只对特定模板起作用:

// Default is truetemplateResolver.setCacheable(false);templateResolver.getCacheablePatternSpec().addPattern("/users/*");

同样,我们可以通过建立自己的缓存管理器对象来修改其配置,该对象可以是默认 StandardCacheManager 实现的一个实例:

// Default is 200StandardCacheManager cacheManager = new StandardCacheManager();cacheManager.setTemplateCacheMaxSize(100);...templateEngine.setCacheManager(cacheManager);

org.thymeleaf.cache.StandardCacheManager 有关配置缓存的更多信息,请参考的Javadoc API 。

可以从模板缓存中手动删除条目:

// Clear the cache completelytemplateEngine.clearTemplateCache();// Clear a specific template from the cachetemplateEngine.clearTemplateCacheFor("/users/userList");

 

 

 

回复以下关键字,获取更多资源

 

SpringCloud进阶之路 | Java 基础 | 微服务 | JAVA WEB | JAVA 进阶 | JAVA 面试 | MK 精讲

 


 

笔者开通了个人微信公众号【银河架构师】,分享工作、生活过程中的心得体会,填坑指南,技术感悟等内容,会比博客提前更新,欢迎订阅。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值