Spring学习-Spring中对资源文件的封装

来源:互联网 发布:购买软件招标文件 编辑:程序博客网 时间:2024/06/07 17:15

在开发过程中,对不同国家语言的支持,一般采用独立的资源文件(如一个properties文件)完成所有语言信息的配置,在SPRING中对这种方式进行了封装,首先定义好资源文件,如上:
tavorResource.properties
guestName=tavor
greeting=nice to meet you,
那么在SPRING中,在applicationContext.xml(SPRING的配置文件中),先声明一个Bean,其类型为
ResourceBundleMessageSource或者ReloadableResourceBundleMessageSource(此类提供了无需重启服务器即可加载信息的特性)
而且些bean的名称必须为messageSource,且其必包含一个名为basenames的property,且此Property包含一个LIST的子元素,其中的VALUE均为相应的资源文件名(不带LOCALE的)
<bean id="messageSource"
  class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basenames">
   <list>
    <value>tavorResource</value>
    <value>hehemess</value>
   </list>
  </property>
</bean>
比如我们的定义如上,
那么在我们的代码中就可以通过ApplicationContext的getMessage()获取相应的属性值了。
String greeting = ctx.getMessage("greeting", null, Locale.getDefault());
String guestName = ctx.getMessage("guestName", null, Locale.getDefault());
System.out.println(greeting+guestName);
这样就会输出nice to meet you,tavor
getMessage的三个参数,第一个是属性名;第二个是参数,也就是说在属性文件中是可以放置参数的;第三个是本地化语言。
比如
greeting=nice to [{0}] you,[{1}]
那么我们调用的时候就可以用
String greeting = ctx.getMessage("greeting", new Object[]{"see","my friend"}, Locale.getDefault());

那么得到的greeting最后就是nice to see you,my friend 

原创粉丝点击