绕过 FreeMarker 缓存?

Posted

技术标签:

【中文标题】绕过 FreeMarker 缓存?【英文标题】:bypass FreeMarker caching? 【发布时间】:2010-09-26 13:03:27 【问题描述】:

请求某些模板时是否可以绕过 Freemarker 缓存?我意识到我可能必须实现自己的 TemplateLoader 才能做到这一点,但即便如此,当请求模板 A 时,我看不到检查缓存的方法,但在请求模板 B 时绕过它?

如果这是不可能的,我只需要完全禁用缓存。

【问题讨论】:

你是直接使用freemarker还是通过一些web框架? 【参考方案1】:

尝试在您的 configuration 上禁用缓存:

configuration.setTemplateUpdateDelay(0);

这应该会导致它在每次请求时检查模板的更新版本。

要仅跳过某些模板的缓存,您只需覆盖 getLastModified 以返回某些模板的非常旧的日期,从而强制重新加载。

【讨论】:

【参考方案2】:

您可以在配置对象本身上设置它。详情请见this page。

对于您的特定问题,您可以执行以下操作:

cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:0, soft:0");

【讨论】:

以上是关于绕过 FreeMarker 缓存?的主要内容,如果未能解决你的问题,请参考以下文章

如何在项目里面使用freemarker实现页面缓存

freemarker thymeleaf哪个好

Java基础之Freemarker模板加载及清空机制

页面缓存-freemarker静态处理

网页静态化(freemarker)

网页静态化—redis | freemarker