Freemarker:使用自定义函数重新加载模板

Freemarker: reload template using custom function

我想将 freemarker 与数据库中的模板一起使用。模板有时会改变。我想创建一个 Function<String, String> 从数据库中获取模板名称和 return 当前模板。

我怎样才能让 freemarker 在 x 分钟后认为模板过时,并且在每次需要新版本模板时调用我的函数?或者也许其他一些模板提供了这种开箱即用的功能?

有一个名为 template_update_delay 或 Java API Configuration.setTemplateUpdateDelayMilliseconds(long) 的配置设置。这决定了 FreeMarker 检查模板缓存条目是否过时的频率。 (它只在你需要模板时才这样做,而且它的缓存条目比那个更旧。)我想你应该简单地依赖它。

还有 Configuration.removeTemplateFromCache,以防您收到有关模板更改的通知。