烟锁着秦楼 2024-02-05 01:13 采纳率: 50%
浏览 70
已结题

关于#spring boot#的问题:springboot 打包jar 后,启动指定 i18n资源(语言-java)

springboot 打包jar 后,启动指定 i18n资源。

springboot 分离 i18n

更新文字,无需重新打包。只需要更改jar所在的目录下的文件文字

  • 写回答

21条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-02-05 01:14
    关注
    获得0.90元问题酬金

    引自免费微信小程序:皆我百晓生

    在Spring Boot应用中,为了支持国际化(i18n),你通常会将语言资源文件放在类路径下的src/main/resources/messages目录下,例如messages.properties(默认语言)和messages_zh_CN.properties(简体中文)。当应用打包成jar后,这些资源文件会被包含在jar包内。

    然而,为了能在不重新打包的情况下更新语言资源,你可以选择将语言资源文件放置在jar包外部的一个特定目录下。Spring Boot允许配置外部化配置源,包括外部的资源文件。这里我们通过修改配置,使得Spring Boot启动时从指定的外部目录加载i18n资源:

    1. 首先,在应用运行时,确保你的外部资源目录结构与类路径内的结构一致,即有如messages.properties和其他语言版本的文件。

    2. application.propertiesapplication.yml中添加如下配置来指定外部资源位置:

    spring.messages.basename=classpath:/messages, file:/path/to/your/i18n/folder/*
    

    这里的 /path/to/your/i18n/folder 应替换为实际存放语言资源文件的绝对路径。这样,Spring Boot将会首先查找类路径下的资源文件,然后查找指定目录下的资源文件,并且优先使用外部目录中的最新内容。

    这样一来,当你需要更新语言文字时,只需修改这个外部目录下的相应资源文件即可生效,无需重新打包整个应用。

    注意:对于生产环境,这种方式可能需要结合实际运维策略,以确保资源配置的安全性和一致性。同时,请根据实际部署环境调整资源配置路径。

    评论 编辑记录
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 赞助了问题酬金15元 2月5日
  • 创建了问题 2月5日