Spring_国际化信息设置
Posted 大梦几千秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring_国际化信息设置相关的知识,希望对你有一定的参考价值。
生命太过短暂,今天放弃了明天不一定能得到。
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 extends WebMvcConfigurerAdapter { /** * 配置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_国际化信息设置的主要内容,如果未能解决你的问题,请参考以下文章