Spring_國際化信息設置
阿新 • • 發佈:2018-05-18
mes webconfig TP intern can message LV 根據 根路徑
生命太過短暫,今天放棄了明天不一定能得到。
Spring有多個信息源的類,它們都實現了MessageSource接口。在這些類中,最常見和有用的是 ResourceBundleMessageSource 和
ReloadableResourceBundleMessageSource。
1.配置ResourceBundleMessageSource
1)使用Java配置
package config; 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.support.ResourceBundleMessageSource; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration @EnableWebMvc @ComponentScan("study.practice") public class WebConfig extendsWebMvcConfigurerAdapter { /** * 配置JSP視圖解析器:InternalResourceViewResolver * @return */ @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); //添加前綴 resolver.setPrefix("/WEB-INF/views"); //添加後綴 resolver.setSuffix(".jsp"); resolver.setViewClass(JstlView.class); return resolver; } /** * 配置國際化信息源 ResourceBundleMessageSource * @return */ @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("messages"); return messageSource; } }
2)使用XML配置
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="messages" />
設置該bean的baseName屬性,ResourceBundleMessageSource 會試圖在根路徑的屬性文件中解析信息,這些屬性文件的名稱時根據這個基礎名稱衍生得到的,如以上代碼baseName為‘messages‘,那麽這些屬性文件可命名為‘messages_zh.properties‘或‘messages_us.properties‘。
2.配置ReloadableResourceBundleMessageSource
1)使用Java配置
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("file:///etc/source/messages"); messageSource.setCacheSeconds(10); return messageSource; }
2)使用XML配置
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basename="file:///etc/source/messages" p:cacheSeconds="10" />
這兩種方案的工作方式非常類似,區別在於ReloadableResourceBundleMessageSource 能夠重新加載信息屬性,而不必重新編譯或重啟應用。
Spring_國際化信息設置