spring boot國際化之MessageSource的使用方法
前言
修改properties文件的目錄:在application.yml或者application.properties中配置 spring.message.basename
spring:
application:
name: test-worklog
messages:
basename: i18n/messages
encoding: UTF-8

MessageSource的使用:
1. 無參數(shù)
operation.success = 操作成功。
String msg1 = this.messageSource.getMessage(" operation.success ", null, Locale.CHINA);
2. 動態(tài)參數(shù)
start.ge.end = 開始日期{0}必須小于結(jié)束日期{1}!
String [] param = {startDate, endDate};
String msg =getMessage("start.ge.end", param);
@Autowired
private MessageSource messageSource;
/**
* 國際化
*
* @param result
* @return
*/
public String getMessage(String result, Object[] params) {
String message = "";
try {
Locale locale = LocaleContextHolder.getLocale();
message = messageSource.getMessage(result, params, locale);
} catch (Exception e) {
LOGGER.error("parse message error! ", e);
}
return message;
}
補充一個方法,適用于類中無法獲取到MessageSource
/**
* 國際化
* 注:通過@Autowired private MessageSource messageSource無法獲取
*
* @param result
* @return
*/
public String getMessage(String result, Object[] params) {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setCacheSeconds(-1);
messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
messageSource.setBasenames("/i18n/messages");
String message = "";
try {
Locale locale = LocaleContextHolder.getLocale();
message = messageSource.getMessage(result, params, locale);
} catch (Exception e) {
log.error("parse message error! ", e);
}
return message;
}
總結(jié)
到此這篇關(guān)于spring boot國際化之MessageSource使用方法的文章就介紹到這了,更多相關(guān)springboot國際化MessageSource的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實現(xiàn)快遞物流查詢功能(快遞鳥)
本文將基于springboot2.4.0實現(xiàn)快遞物流查詢,物流信息的獲取通過快遞鳥第三方實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-10-10
SpringBoot+Tess4j實現(xiàn)牛的OCR識別工具的示例代碼
這篇文章主要介紹了SpringBoot+Tess4j實現(xiàn)牛的OCR識別工具的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
java調(diào)用python代碼的兩種實現(xiàn)方式:Runtime.exec()和Jython
在Java中調(diào)用Python代碼有多種方法,包括使用Runtime.exec()和第三方庫如Jython,Runtime.exec()通過系統(tǒng)命令執(zhí)行Python腳本,適用于簡單的調(diào)用場景,Jython則是一個Python的Java實現(xiàn),允許在Java中直接運行Python代碼,適用于更深層次的集成需求2025-01-01
Java利用套接字實現(xiàn)應(yīng)用程序?qū)?shù)據(jù)庫的訪問
所謂套接字(Socket),就是對網(wǎng)絡(luò)中不同主機上的應(yīng)用進程之間進行雙向通信的端點的抽象。這篇文章主要介紹了Java利用套接字實現(xiàn)應(yīng)用程序?qū)?shù)據(jù)庫的訪問,感興趣的可以了解一下2022-09-09
SpringBoot應(yīng)用的接口訪問從HTTP改為HTTPS
本文主要介紹了SpringBoot應(yīng)用的接口訪問從HTTP改為HTTPS,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03

