ResourceBundleMessageSource: 提供国际化的类。说的简单点,这个类的作用就是读取资源属性文件(.properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。
新建国际化资源文件
i18n_en_US.properties
message=welcome:{0}
i18n_zh_CN.properties
message=欢迎:{0}
Bean的配置
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n" />
</bean>
使用:
@Test
public void test() {
ApplicationContext context = new ClassPathXmlApplicationContext("SpringMVC.xml");
System.out.println(context.getMessage("message", new Object[]{"lgh"}, Locale.SIMPLIFIED_CHINESE));
System.out.println(context.getMessage("message", new Object[]{"lgh"}, Locale.US));
}
@Controller
public class TestController {
@Autowired
private ResourceBundleMessageSource messageSource;
@RequestMapping(value = "/test4", method = RequestMethod.GET)
public String test4(Locale locale) {
System.out.println(messageSource.getMessage("message", null, locale));
return "i18n";
}
}
ResourceBundleMessageSource 的底层实现依赖于java.util.ResourceBundle