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

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

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

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

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

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

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

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

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

也就是說:

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

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

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

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

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

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

解釋:

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

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

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

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

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

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

用戶 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)說明
必須有 messages.properties否則 Spring Boot 不會(huì)自動(dòng)配置 MessageSource
支持多組資源文件spring.messages.basename=a,b,c 配置
路徑寫法config.i18n.messages 表示 classpath:config/i18n/messages.properties
回退機(jī)制默認(rèn)會(huì)嘗試系統(tǒng) locale,可通過 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. 在代碼中通過 MessageSource 獲取本地化消息。

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

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

相關(guān)文章

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

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

    在我們?nèi)粘J褂胘son序列化框架過程中,經(jīng)常會(huì)遇到在輸出json字符串時(shí),忽略某些字段,那么在Gson框架中,要想實(shí)現(xiàn)這種方式,可以怎么處理呢,本文就來介紹一下
    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)義的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java獲取磁盤空間的兩種代碼示例

    Java獲取磁盤空間的兩種代碼示例

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

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

    這篇文章主要介紹了Mac下安裝配置Maven并在IDEA中配置,本文通過圖文并茂的形式給大家介紹的非常詳細(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)目教程,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot公共字段自動(dòng)填充實(shí)現(xiàn)與避坑指南

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

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

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

    虛擬線程主要解決的問題是減少I/O密集型任務(wù)的I/O阻塞,這篇文章主要介紹了SpringBoot3中使用虛擬線程的詳細(xì)過程,需要的朋友可以參考下
    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ò)展接口,允許開發(fā)者在Bean初始化的過程中插入自定義邏輯,本文就來介紹一下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)論

班戈县| 清流县| 仁怀市| 石屏县| 呼伦贝尔市| 饶阳县| 井陉县| 巨野县| 荃湾区| 都昌县| 黑龙江省| 桂阳县| 伽师县| 河北省| 德兴市| 辽中县| 金华市| 米脂县| 松桃| 青州市| 玉溪市| 师宗县| 南汇区| 卢湾区| 嫩江县| 锡林浩特市| 衡南县| 阿拉善盟| 繁昌县| 临泉县| 马龙县| 阜宁县| 宁蒗| 辽阳市| 禄丰县| 崇左市| 德阳市| 陆丰市| 京山县| 延津县| 奉节县|