使用spring實現資源國際化
有時候需要使用資源國際化來定義和處理一些欄位。本文是一個簡單的使用例子用於展示在基於java註解的配置中配置spring資源國際化的類並使用其獲取prop檔案中的屬性。
1、建立資原始檔
本文示例使用的資原始檔為一個屬性檔案,預設的屬性檔名稱為i18n.properties,存放在工程的類路徑下的i18n目錄下。實際使用中可以針對需要新增針對不同語音的屬性檔案,如:
i18n_en_US.properties、i18n_zh_CN.properties等。本例中的預設屬性配置檔案中的內容如下:
munu.btn1.title=\u5B89\u9632
menu.btn2.title=\u670D\u52A1
menu.btn3.title=\u6211\u7684
munu.btn3.sub1.title=\u4E3B\u9875
2、配置bean
本文使用給予java註解的配置。主要時建立一個org.springframework.context.support.ResourceBundleMessageSource的bean例項。原始碼如下:
package api.landsem.base.configuration;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@EnableWebMvc
@ComponentScan({"api.landsem.base.bean"})
@ImportResource("classpath:applicationContext-*.xml")
public class RootConfiguration {
@Bean("messageSource")
public MessageSource getResourceBundleMessageSourc() {
ResourceBundleMessageSource resource = new ResourceBundleMessageSource();
resource.setBasename("i18n/i18n");
return resource;
}
}
3、讀取資源屬性檔案
在java中使用建立的MessageSource bean來讀取屬性檔案,如下為測試原始碼:
package api.landsem.base.test;
import java.util.Locale;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
public class PropertiesTest extends BaseTest{
private static final Logger logger = Logger
.getLogger(PropertiesTest.class);
@Autowired
private MessageSource mMessageSource;
@Test
public void test() {
String msg = mMessageSource.getMessage("munu.btn1.title", null, Locale.getDefault());
logger.info(msg);
}
}
相關文章
- 在Spring Boot實現國際化的案例Spring Boot
- Android實現國際化Android
- 使用vue-i18n實現國際化Vue
- Spring Webflux國際化SpringWebUX
- 小程式國際化實現方式
- Java模組化的國際化實現- GunnarJava
- Android中的資源與國際化!Android
- vue中如何使用i18n實現國際化Vue
- Spring-boot國際化Springboot
- winForm 國際化的簡單實現ORM
- 【SpringBoot學習(四) 使用 thymeleaf實現國際化功能】Spring Boot
- 玩轉spring boot——國際化Spring Boot
- 【spring 國際化】springMVC、springboot國際化處理詳解SpringMVCSpring Boot
- Webnovel 國際化實踐Web
- 使用Spring Boot實現模組化Spring Boot
- Rails 訊息資源的國際化(I18n)AI
- 使用jquery.i18n實現國際化多語言顯示jQuery
- Struts2【UI標籤、資料回顯、資源國際化】UI
- Asp.net專案基於jQuery.i18n.properties 實現前端頁面的資源國際化ASP.NETjQuery前端
- iOS (相容Storyboard)優雅地實現國際化(Localization)iOS
- Android國際化(多語言)實現,支援8.0Android
- 中文轉換成unicode字元,實現國際化Unicode字元
- spring4筆記----spring4國際化Spring筆記
- 從原始碼MessageSource的三個實現出發實戰spring·i18n國際化原始碼Spring
- Spring多資料來源管理實現原理Spring
- Flutter 國際化適配實戰Flutter
- 實用的 Flutter 國際化指南Flutter
- 人力資源實現智慧化的原因
- Spring Boot應用的國際化與本地化支援Spring Boot
- 基於react-intl實現手動國際化切換React
- springMVC專案國際化(i18n)實現方法SpringMVC
- java國際資源化檔案配置j2se+j2eeJava
- Spring+MyBatis多資料來源配置實現SpringMyBatis
- Spring 的AbstractRoutingDataSource實現多資料來源Spring
- 國際化思考
- ios國際化iOS
- Flutter實戰之主題、國際化篇Flutter
- 初識ABP vNext(6):vue+ABP實現國際化Vue