如果更改模板文件,则下次获取模板时FreeMarker将自动重新加载并重新解析模板。但是,由于始终检查更改可能是处理大量模板的系统的负担,因此存在称为"更新延迟的配置级别设置" (默认值为5秒)。自从上次检查更新版本以来已经过去了这么长时间,FreeMarker将不会再次检查模板是否已更改。如果要立即查看更改,请将此设置设置为0.请注意,某些模板加载器由于底层存储机制不支持而无法看到模板已更改;例如,基于类加载器的模板加载器可能存在这个问题。
有人可以帮忙吗?我正在使用春季靴子。
String jsonMessage = processTemplateIntoString(configuration.getTemplate("customjsontemplate.ftl"), dataMap);
答案 0 :(得分:2)
只需将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-