请求某些模板时是否可以绕过 Freemarker 缓存?我意识到我可能必须实现自己的 TemplateLoader 才能做到这一点,但即便如此,当请求模板 A 时,我看不到检查缓存的方法,但在请求模板 B 时绕过它?
如果这是不可能的,我只需要完全禁用缓存。
请求某些模板时是否可以绕过 Freemarker 缓存?我意识到我可能必须实现自己的 TemplateLoader 才能做到这一点,但即便如此,当请求模板 A 时,我看不到检查缓存的方法,但在请求模板 B 时绕过它?
如果这是不可能的,我只需要完全禁用缓存。
尝试在您的配置上禁用缓存:
configuration.setTemplateUpdateDelay(0);
这应该会导致它在每次请求时检查模板的更新版本。
要仅跳过某些模板的缓存,您只需要覆盖getLastModified
以返回某些模板的非常旧的日期,从而强制重新加载。
您可以在配置对象本身上设置它。有关详细信息,请参阅此页面。
对于您的特定问题,您可以执行以下操作:
cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:0, soft:0");