【发布时间】:2022-01-01 12:15:21
【问题描述】:
我正在使用带有 devtools 依赖项的 spring boot (2.5.7) 来进行热重载。它工作得很好(包括片段的变化),但不适用于本地化文件(资源/语言下的message_XX.properties)。每次我在那里进行更改时,我都需要重新启动服务器。这是我的 application.yaml:
spring:
thymeleaf:
cache: false
mode: HTML
encoding: UTF-8
prefix: file:src/main/resources/templates/
web:
resources:
static-locations:
- file:src/main/resources/static/
cache:
period: 0
一些修改:
- 我使用 vscode 和 gradle 7
- 我重新定义了
MessageSource。
有什么想法吗?
谢谢!
【问题讨论】:
-
您的位置错误,没有
src/main/resources,您实际上正在覆盖默认值(已经指向那里)。尽管您确实更改了默认值(或者甚至声明了您自己的MessageSource而不是使用默认值),但您的配置中没有任何关于消息的内容。 -
@DoNhuVy,我没有使用 IntelliJ,所以这无济于事(我使用 VSCode,但手动构建有等级的东西)。
-
@M.Deinum,是的,我重新定义了
MessageSource以指向lang文件夹。但我确实有一个文件夹src/main/resources,其中有static和templates文件。如果我从yaml文件中删除该行,则热重载不适用于模板文件。 -
取决于
MessageSource缓存可能会或可能不会起作用。您应该将缓存时间设置为 0(无缓存)。src/main/resources是类路径。如果您离开此配置并部署 jar 文件(或 war),您的应用程序将不再运行。禁用缓存并在 IDE 中进行自动构建应该可以重新加载。如果您使用的是 Intellij 或 netbeans,请参阅 attacomsian.com/blog/…(方法 1)。
标签: spring-boot thymeleaf hot-reload