代码之家  ›  专栏  ›  技术社区  ›  Anand Varkey Philips Rohit upadhyay

如何在Apache免费标记中设置模板缓存以不重新加载?

  •  1
  • Anand Varkey Philips Rohit upadhyay  · 技术社区  · 6 年前

    documentation ,

    如果更改模板文件,那么下次获取模板时,freemarker将自动重新加载并重新分析模板。但是,对于处理大量模板的系统来说,总是检查更改可能是一个负担,因此有一个名为“更新延迟”的配置级别设置(默认值为5秒)。在上次检查较新版本后经过这么长时间之前,freemarker不会再次检查模板是否已更改。如果要立即查看更改,请将此设置设置为0。请注意,一些模板加载器不会看到模板已更改,因为底层存储机制不支持此功能;例如,基于类加载器的模板加载器可能会出现此问题。

    有人能帮忙吗?我在用弹簧靴。

    String jsonMessage = processTemplateIntoString(configuration.getTemplate("customjsontemplate.ftl"), dataMap);
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   ddekany    6 年前

    只是设置 template_update_delay 设置到荒谬的高度(没有击中 long MS限制)。不确定如何配置freemarker,但如果 application.properties 然后像这样:

    # Never re-validate cached entries:
    spring.freemarker.settings.template_update_delay=100000000 h
    

    请注意,缓存大小限制仍然适用,因此如果达到该限制,则可能会删除旧条目。

    顺便说一下,你可以找到所有你可以写的东西。 spring.freemarker.settings. 在这里: https://freemarker.apache.org/docs/api/freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-