最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實(shí)現(xiàn)國(guó)際化的配置方法

 更新時(shí)間:2025年11月07日 09:49:26   作者:lang20150928  
隨著一個(gè)系統(tǒng)的規(guī)模做上去之后,國(guó)際化的問(wèn)題就會(huì)逐漸暴露出來(lái),簡(jiǎn)單來(lái)說(shuō),當(dāng)你的系統(tǒng)面對(duì)的不再是本國(guó)的用戶(hù),而要面臨海外用戶(hù)時(shí),系統(tǒng)必須要能適配國(guó)際化,所以本文給大家介紹了SpringBoot實(shí)現(xiàn)國(guó)際化的配置方法,需要的朋友可以參考下

一、什么是“國(guó)際化”(i18n)?

  • 讓同一個(gè)應(yīng)用能 自動(dòng)顯示不同語(yǔ)言的內(nèi)容
  • 比如:
    • 用戶(hù)瀏覽器語(yǔ)言是 zh-CN(簡(jiǎn)體中文)→ 顯示“歡迎”
    • 用戶(hù)語(yǔ)言是 en-US(美式英語(yǔ))→ 顯示“Welcome”

Spring Boot 通過(guò) MessageSource 接口實(shí)現(xiàn)這一功能,而它默認(rèn)使用 資源文件(properties 文件) 來(lái)存儲(chǔ)不同語(yǔ)言的消息。

二、默認(rèn)行為:自動(dòng)配置 MessageSource

自動(dòng)生效的條件:

Spring Boot 只有在 classpath 根目錄下找到 messages.properties 文件時(shí),才會(huì)自動(dòng)配置 MessageSource。

也就是說(shuō):

  • 如果你有 messages.properties(這是默認(rèn)語(yǔ)言,通常是英文或中性語(yǔ)言),Spring Boot 會(huì)自動(dòng)啟用國(guó)際化支持。
  • 如果你只有 messages_zh.propertiesmessages_fr.properties,但沒(méi)有 messages.properties,那么 Spring Boot 不會(huì)自動(dòng)配置 MessageSource!

所以:必須提供一個(gè)默認(rèn)的 messages.properties,即使它是空的!

三、如何自定義資源包位置?

你可以通過(guò) application.propertiesapplication.yml 修改默認(rèn)設(shè)置:

# 指定多個(gè)資源文件基名(basename),用逗號(hào)分隔
spring.messages.basename=messages,config.i18n.messages

# 是否回退到系統(tǒng)本地語(yǔ)言(默認(rèn) true)
spring.messages.fallback-to-system-locale=false

解釋?zhuān)?/h3>

spring.messages.basename=messages,config.i18n.messages

  • 表示 Spring 會(huì)去加載兩類(lèi)資源文件:
    1. messages.properties、messages_zh_CN.properties
    2. config/i18n/messages.properties、config/i18n/messages_en.properties
  • 路徑可以是:
    • 類(lèi)路徑根目錄下的文件(如 messages.properties
    • 包路徑形式(如 config.i18n.messages → 對(duì)應(yīng) classpath:config/i18n/messages.properties

spring.messages.fallback-to-system-locale=false

  • 默認(rèn)為 true:如果用戶(hù) locale 是 zh-CN,但找不到 messages_zh_CN.properties,就會(huì)嘗試 messages_zh.properties → 再找不到就用系統(tǒng)默認(rèn) locale(比如服務(wù)器操作系統(tǒng)的語(yǔ)言)。
  • 設(shè)為 false:找不到精確匹配就直接用 messages.properties(不回退到系統(tǒng) locale)。

四、資源文件命名規(guī)則

假設(shè)你的 basename 是 messages,那么 Spring 會(huì)按以下優(yōu)先級(jí)查找:

用戶(hù) Locale嘗試加載的文件(按順序)
zh_CNmessages_zh_CN.propertiesmessages_zh.propertiesmessages.properties
frmessages_fr.propertiesmessages.properties
任意未知 locale直接用 messages.properties

注意:messages.properties 是兜底文件,必須存在,否則整個(gè)國(guó)際化機(jī)制不會(huì)啟動(dòng)!

五、代碼中如何使用?

在 Controller 或 Service 中注入 MessageSource

@Autowired
private MessageSource messageSource;

@GetMapping("/greet")
public String greet(Locale locale) {
    return messageSource.getMessage("greeting", null, locale);
}

對(duì)應(yīng)的 messages.properties

greeting=Hello!

messages_zh.properties

greeting=你好!

當(dāng)請(qǐng)求帶 Accept-Language: zh 時(shí),返回“你好!”;否則返回“Hello!”。

總結(jié)關(guān)鍵點(diǎn)

要點(diǎn)說(shuō)明
必須有 messages.properties否則 Spring Boot 不會(huì)自動(dòng)配置 MessageSource
支持多組資源文件spring.messages.basename=a,b,c 配置
路徑寫(xiě)法config.i18n.messages 表示 classpath:config/i18n/messages.properties
回退機(jī)制默認(rèn)會(huì)嘗試系統(tǒng) locale,可通過(guò) fallback-to-system-locale=false 關(guān)閉
文件命名basename + _ + language + _ + country + .properties

建議實(shí)踐

  1. src/main/resources/ 下創(chuàng)建:
    • messages.properties(默認(rèn)英文)
    • messages_zh.properties(中文)

application.yml 中明確配置(可選但推薦):

spring:
  messages:
    basename: messages
    fallback-to-system-locale: false
  1. 在代碼中通過(guò) MessageSource 獲取本地化消息。

這樣你的 Spring Boot 應(yīng)用就具備了多語(yǔ)言能力!

到此這篇關(guān)于SpringBoot支持國(guó)際化的配置方法的文章就介紹到這了,更多相關(guān)SpringBoot支持國(guó)際化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Gson序列化指定忽略字段的三種寫(xiě)法詳解

    Gson序列化指定忽略字段的三種寫(xiě)法詳解

    在我們?nèi)粘J褂胘son序列化框架過(guò)程中,經(jīng)常會(huì)遇到在輸出json字符串時(shí),忽略某些字段,那么在Gson框架中,要想實(shí)現(xiàn)這種方式,可以怎么處理呢,本文就來(lái)介紹一下
    2021-10-10
  • maven工程中jar包瘦身的五種方法

    maven工程中jar包瘦身的五種方法

    這篇文章主要介紹了maven工程中jar包瘦身的五種方法,幫助大家更好的理解和使用maven,感興趣的朋友可以了解下
    2021-02-02
  • Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼

    Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java獲取磁盤(pán)空間的兩種代碼示例

    Java獲取磁盤(pán)空間的兩種代碼示例

    這篇文章主要介紹了Java獲取磁盤(pán)空間的兩種代碼示例,沒(méi)什么事的時(shí)候可以拿來(lái)玩玩,需要的朋友參考下。
    2017-11-11
  • Mac下安裝配置Maven并在IDEA中配置的詳細(xì)教程

    Mac下安裝配置Maven并在IDEA中配置的詳細(xì)教程

    這篇文章主要介紹了Mac下安裝配置Maven并在IDEA中配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • IDEA2022創(chuàng)建Maven Web項(xiàng)目教程(圖文)

    IDEA2022創(chuàng)建Maven Web項(xiàng)目教程(圖文)

    本文主要介紹了IDEA2022創(chuàng)建Maven Web項(xiàng)目教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot公共字段自動(dòng)填充實(shí)現(xiàn)與避坑指南

    SpringBoot公共字段自動(dòng)填充實(shí)現(xiàn)與避坑指南

    在開(kāi)發(fā)外賣(mài)系統(tǒng)訂單模塊時(shí),我發(fā)現(xiàn)每個(gè)實(shí)體類(lèi)都包含create_time、update_by等重復(fù)字段,手動(dòng)維護(hù)這些字段不僅效率低下,還容易出錯(cuò),本文將分享一套經(jīng)過(guò)生產(chǎn)驗(yàn)證的自動(dòng)化方案,助你徹底擺脫公共字段維護(hù)的煩惱,需要的朋友可以參考下
    2025-05-05
  • SpringBoot3中使用虛擬線程的詳細(xì)過(guò)程

    SpringBoot3中使用虛擬線程的詳細(xì)過(guò)程

    虛擬線程主要解決的問(wèn)題是減少I(mǎi)/O密集型任務(wù)的I/O阻塞,這篇文章主要介紹了SpringBoot3中使用虛擬線程的詳細(xì)過(guò)程,需要的朋友可以參考下
    2025-06-06
  • Spring組件初始化擴(kuò)展點(diǎn)BeanPostProcessor的實(shí)現(xiàn)

    Spring組件初始化擴(kuò)展點(diǎn)BeanPostProcessor的實(shí)現(xiàn)

    在Spring框架中,BeanPostProcessor是一個(gè)強(qiáng)大的擴(kuò)展接口,允許開(kāi)發(fā)者在Bean初始化的過(guò)程中插入自定義邏輯,本文就來(lái)介紹一下BeanPostProcessor的使用,感興趣的可以了解一下
    2025-08-08
  • Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例

    Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例

    本篇文章主要介紹了Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論

施甸县| 拉孜县| 西盟| 武威市| 乌兰察布市| 出国| 阿勒泰市| 固原市| 丹巴县| 安阳县| 信阳市| 阿拉善盟| 萝北县| 定西市| 阳朔县| 瑞安市| 德钦县| 古蔺县| 防城港市| 陈巴尔虎旗| 大厂| 汉阴县| 南召县| 和静县| 潍坊市| 永兴县| 班玛县| 崇礼县| 厦门市| 和田县| 疏附县| 内丘县| 开化县| 贵港市| 曲松县| 牙克石市| 周口市| 平江县| 岳阳县| 涪陵区| 英山县|