spring中的ResourceBundleMessageSource
1 首先创建两个资源文件
messages_en_US.properties
customer.name=Yong Mook Kim, age : {0}, URL : {1}
messages_zh_CN.properties
customer.name=\ufeff\u6768\u6728\u91d1, age : {0}, URL : {1}
2 bean文件的设置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename"> <value>locale\customer\messages</value> </property> </bean> </beans>
其中basename指出了资源文件的位置
3 测试
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("locale.xml"); String name = context.getMessage("customer.name", new Object[] { 28,"http://www.eeee.com" }, Locale.US); System.out.println("Customer name (English) : " + name); String namechinese = context.getMessage("customer.name", new Object[] {28, "http://www.eeee.com" }, Locale.SIMPLIFIED_CHINESE); System.out.println("Customer name (Chinese) : " + namechinese); }
4 另外一个ReloadableResourceBundleMessageSource,主要是用来定时刷新资源文件,可以不重启动
增加的属性为: <property name="cacheSeconds" value="3000" />
以秒为单位,如果-1表示用不刷新
参考:http://blog.csdn.net/jackyrongvip/article/details/9218325