Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 62.1MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Thymeleaf的工作得益于一组解析器 - 用于标记和文本 - 将模板解析为事件序列(开放标记,文本,关闭标记,注释等)和一系列处理器 - 每种类型的行为都需要一个应用 - 修改模板解析的事件序列,以便通过将原始模板与我们的数据相结合来创建我们期望的结果。
它还包括 - 默认情况下 - 一个存储已解析模板的缓存; 在处理模板文件之前读取和解析模板文件所产生的事件序列。这在Web应用程序中工作时特别有用,并基于以下概念构建:
这一切都导致了这样的想法:在不浪费大量内存的情况下缓存Web应用程序中最常用的模板是可行的,并且它还将节省大量时间用于对一小组文件的输入/输出操作事实上,这永远不会改变。
我们如何控制这个缓存?首先,我们之前已经了解到,我们可以在模板解析器中启用或禁用它,甚至只对特定模板执行操作:
// Default is true
templateResolver.setCacheable(false);
templateResolver.getCacheablePatternSpec().addPattern("/users/*");
此外,我们可以通过建立自己的缓存管理器对象来修改其配置,该对象可以是默认StandardCacheManager实现的实例:
// Default is 200 StandardCacheManager cacheManager = new StandardCacheManager(); cacheManager.setTemplateCacheMaxSize(100); ... templateEngine.setCacheManager(cacheManager);
org.thymeleaf.cache.StandardCacheManager有关配置缓存的更多信息,请参阅javadoc API 。
可以从模板缓存中手动删除条目:
// Clear the cache completely templateEngine.clearTemplateCache(); // Clear a specific template from the cache templateEngine.clearTemplateCacheFor("/users/userList");
1. 解耦逻辑:概念到目前为止,我们已经为我们的Grocery Store工作,模板以通常的方式完成,逻辑以属性的形式插入到我们的模板中。但Thymeleaf也让我们彻底脱钩从逻辑模板标记,允许创建完全逻辑 ...