【发布时间】:2015-06-01 14:13:11
【问题描述】:
我正在寻找在 Spring Boot 框架上启用 ftl 文件的热刷新,以便对 ftl 文件的更改不需要重新启动应用程序。 我曾尝试通过 application.properties 进行以下设置,
spring.freemarker.cache=false
spring.freemarker.template_update_delay=0
但仍然没有达到它。
如何通过应用程序属性启用它?
谢谢!
【问题讨论】:
-
该设置使用什么
TemplateLoader? (换句话说,您将模板保存在哪里以及如何替换它们?) -
我的模板文件夹位于类路径(资源文件夹)中。我应该把它从我的包裹里拿出来吗?
-
如果您为
freemarker.cache日志类别启用调试日志记录,您可能会发现FM 实际上会重新检查资源是否已更改。然后,要么在“已部署”应用程序未使用的位置替换它们,要么正在使用的 JavaClassLoader进行某种缓存或报告错误的最后修改时间。那么,您可以编写自己的代码来查看更改吗?直接通过Class.getResource返回的URL加载资源查看。另外,然后检查java.net.URLConnection.getLastModified()是否返回正确的值。 -
顺便说一句,
cache=false是 Spring 特定的扩展吗?因为 FreeMarker 没有这样的设置。无论如何,您都不应该禁用缓存。 -
您的模板文件在
WEB-INF目录中吗?
标签: spring spring-boot freemarker