16 模版缓存
多亏了一系列的解析器和处理器,Thymeleaf才能够正常工作。解析器用于标记和文本。它将模板解析为事件序列(开始标签、文本、结束标签、注释,等等)。处理器用于每一种需要被应用的行为类型。它修改事件序列,通过合并原始模板与我们的数据,创建期待的结果。
它默认包含缓存。缓存里存储了解析过的模板,以及在处理它们前由于读取和解析模板文件产生的事件序列。当在一个网络应用里工作时,这特别有用。它基于以下观念构建:
在任何应用里,输入/输出几乎总是最慢的部分。相较而言,内存里的处理则极其快。
克隆一个存在的内存里的事件序列,比读取模板文件、解析它并创建一个新时间序列,要快得多。
网络应用通常模板不多。
模板文件不大,并且不会在应用运行时被修改。
这说明:在网络应用里缓存最常用的模版是可行的,而且不会浪费大量的内存。同时,也节约了在一小部分实际上从不改变的文件上执行输入/输出操作花费的时间。
那么,我们怎么控制这缓存呢?首先,我们之前学过,可以在Template Resolver启用或者禁用它,甚至可以只针对特定的模版:
而且,我们可以通过建立自己的Cache Manager对象,修改它的配置。Cache Manager对象是默认的StandardCacheManager
实现的一个实例:
参考org.thymeleaf.cache.StandardCacheManager
的javadoc API,获取更多有关配置缓存的信息。
可以从模板缓存里手动去除入口:
Last updated