如何在 spring-boot 应用程序中外部化 i18n 属性文件

How to externalize i18n properties files in spring-boot applications

当我 运行 我的 spring-在官方 spring 文档 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

的帮助下将应用程序作为 unix 服务启动

我的 src/main/resources 中还有一些 i18n messages.properties 文件,我想将它们外部化到同一个配置文件夹中,但我没有做到。我尝试了很多东西,比如玩 spring.messages.basename 但不幸的是,它不起作用。

我正在使用最新版本的 spring-boot,并使用默认 i18n 属性名称 messages.

的自动配置模式

我错过了什么???感谢您的帮助。

我认为你需要一个前导斜杠。

尝试:spring.messages.basename=classpath:/config/messages

我认为,资源包默认为类路径。所以没有必要附加它。只需从类路径直接转到您的文件夹位置。

试试这个:**假设您的配置在静态文件夹中

spring.messages.basename=static/config/messages

一些注意事项:

  1. classpath:message - 将始终查找嵌入的 message_xxx 文件
  2. classpath:/messageclasspath:message 是等价的
  3. file:message - 将查找 jar 的外部当前目录,例如./message_en.properties <- 这就是你想要的

  4. file:/message - 你必须把你的消息文件放到根目录“/”才能使它工作

  5. 使用符号file:config/message如果你需要把config文件夹和你的 ./config/application.properties