SpringBoot實(shí)現(xiàn)前后端分離國際化的示例詳解
前言
Springboot國際化可以幫助使用者在不同語言環(huán)境中構(gòu)建應(yīng)用程序,這樣應(yīng)用程序可以有效地適應(yīng)不同語言文化背景下的用戶需求。
此外,Springboot國際化也可以方便多語言應(yīng)用程序重用和維護(hù),從而減少了系統(tǒng)部署的時間成本和維護(hù)的費(fèi)用。
要實(shí)現(xiàn)Springboot國際化應(yīng)用,主要有三個步驟。
1、設(shè)置國際化屬性文件
定義國際化資源文件,使用properties格式的文件,將不同的多國語言文本資源放在不同的文件中,每個文件的命名采用【locale】+【messages】的方式,如zh_CN.properties、en_US.properties等。

message.properties文件內(nèi)容可為空。
message.en_US.properties內(nèi)容示例:
40001=Hello
message.zh_CN.properties內(nèi)容示例:
40001=你好
2、創(chuàng)建解析器和攔截器
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import java.util.Locale;
@Configuration
public class LocaleConfig {
@Bean
public SessionLocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.CHINA);
return localeResolver;
}
@Bean
public WebMvcConfigurer localeInterceptor() {
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
localeInterceptor.setParamName("lang");
registry.addInterceptor(localeInterceptor);
}
};
}
}
3、啟動配置文件設(shè)置
application.properties中添加如下內(nèi)容
#i18n spring.messages.basename=i18n.messages spring.messages.cache-duration=3600 spring.messages.encoding=UTF-8
application.yml中添加如下內(nèi)容
spring:
messages:
basename: i18n/messages
4、控制器示例
Springboot的國際化是通過一個稱為“messageSource”的bean實(shí)現(xiàn)的。
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestControler {
@Autowired
private MessageSource messageSource;
@GetMapping("/hello")
public Map<Object, Object> test() {
Map<Object, Object> result = new HashMap<Object, Object>();
result.put("code", 40001);
result.put("msg", messageSource.getMessage("40001", null, LocaleContextHolder.getLocale()));
return result;
}
}
5、小結(jié)
Springboot國際化可以幫助使用者在不同語言環(huán)境中構(gòu)建應(yīng)用程序,這樣應(yīng)用程序可以有效地適應(yīng)不同語言文化背景下的用戶需求。
此外,Springboot國際化也可以方便多語言應(yīng)用程序重用和維護(hù),從而減少了系統(tǒng)部署的時間成本和維護(hù)的費(fèi)用。要實(shí)現(xiàn)Springboot國際化應(yīng)用,主要有三個步驟。
1.設(shè)置國際化屬性文件:要實(shí)現(xiàn)Springboot國際化,首先要準(zhǔn)備一系列國際化屬性文件,包括語言和地區(qū)信息。
2.注冊國際化消息資源:將屬性文件中的語言和地區(qū)信息注冊到Springboot應(yīng)用程序中,并指定默認(rèn)值,以便在擴(kuò)展多語言時可以快速、高效地訪問相關(guān)屬性資源。
3.定義多語言捆綁文件:將已定義的國際化屬性文件與應(yīng)用程序結(jié)合起來,形成多語言捆綁文件,以便在用戶選擇不同語言時可以及時調(diào)整應(yīng)用程序語言版本。
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)前后端分離國際化的示例詳解的文章就介紹到這了,更多相關(guān)SpringBoot國際化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot集成I18n國際化文件在jar包外生效問題
- SpringBoot的@GetMapping路徑匹配規(guī)則、國際化詳細(xì)教程
- 史上最佳springboot Locale 國際化方案
- Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語國際化的示例代碼
- 基于springboot i18n國際化后臺多種語言設(shè)置的方式
- 如何在springboot中實(shí)現(xiàn)頁面的國際化
- SpringBoot參數(shù)校驗(yàn)與國際化使用教程
- SpringBoot實(shí)現(xiàn)國際化過程詳解
- Spring如何實(shí)現(xiàn)輸出帶動態(tài)標(biāo)簽的日志
相關(guān)文章
在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法
這篇文章主要介紹了在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法,JDBC是Java用于連接各種數(shù)據(jù)庫的API,需要的朋友可以參考下2015-12-12
Java序列化和反序列化_動力節(jié)點(diǎn)Java學(xué)院整理
把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列恢復(fù)為對象的過程稱為對象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧2017-05-05
SpringBoot項(xiàng)目實(shí)現(xiàn)jar包方式打包部署
SpringBoot默認(rèn)的打包方式就是jar包,本文就來介紹一下SpringBoot項(xiàng)目實(shí)現(xiàn)jar包方式打包部署,具有一定的參考價值,感興趣的可以了解一下2024-08-08
Java實(shí)現(xiàn)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)算法
深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)是兩種基本的圖搜索算法,可用于圖的遍歷、路徑搜索等問題。DFS采用棧結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往深處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖;BFS采用隊(duì)列結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往廣處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖2023-04-04
Spring Boot 中嵌入式 Servlet 容器自動配置原理解析
這篇文章主要介紹了Spring Boot 中嵌入式 Servlet 容器自動配置原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

