首先,建立一个描述message的XML文件,名为messages.xml 
    
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
    <!-- 资源国际化测试 --> 
    <bean id="messageSource"        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">        <property name="basenames"> 
            <list> 
                <value>org/rjstudio/spring/properties/messages</value> 
            </list> 
        </property> 
    </bean> 
</beans> 
    
    这个Bean的id是定死的,只能为“messageSource”。这里的Class需要填入MessageSource接口的实现。其中,在我看的书中只提及了两个类,一个是:ResourceBundleMessageSource,另一个则是ReloadableResourceBundleMessageSource。其中,后者提供了无需重启就可重新加载新配置的特性。 
    
    list节点的value子节点中的body值“org/rjstudio/spring/properties/messages”,是指org.rjstudio.spring.proerties包下的以messages为主要名称的properties文件。比如说,以Locale为zh_CN为例,Spring会自动在类路径中在org.rjstudio.spring.properties包下按照如下顺序搜寻配置文件并进行加载: 
    
    
    
    接下来,让我们在org.rjstudio.spring.properties下,建立两个messages的属性文件。一个名为messages_zh_CN.properties,另一个为messages_en_US.properties,分别对应国际化中的中国和美国。 
    
    在这两个属性文件中分别建立一个userinfo属性。 
        中国为:userinfo=当前登陆用户[{0}] 登陆时间[{1}] 
        美国为:userinfo=current login user:[{0}] login time:[{1}] 
    
    好了,一切就绪,接下来可以写段代码来测试了。。建个类,写个测试Main方法。 
    
    
    
    
    public class MessageTest { 
        public static void main(String[] args) { 
            ApplicationContext ctx = new ClassPathXmlApplicationContext("messages.xml"); 
            Object[] arg = new Object[] { "Erica", Calendar.getInstance().getTime() }; 
            String msg = ctx.getMessage("userinfo", arg,Locale.CHINA); 
            System.out.println("Message is ===> " + msg); 
        } 
    } 
    
    最后输出的结果是:Message is ===> 当前登录用户:[Erica] 登录时间:[07-6-8 上午10:20] 
    
    ctx.getMessage("userinfo", arg,Locale.getDefault());这个方法,传入的三个参数,第一个是properties文件中对应的名。arg为一个对象数组,我们在properties里面放置了两个变量,[{0}]和[{1}],Spring会为我们给它们赋值。而最后则需要传入一个Local。这里用 Locale.CHINA代表中国。如果我们用Locale.US,则输出会变为: 
    
    Message is ===> current login user:[Erica] login time:[6/8/07 10:59 AM] 
    
    OK,到这里,就到这里。

转载于:https://www.cnblogs.com/toSeeMyDream/p/4108651.html

Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本相关推荐

  1. Excel中的宏--VBA的简单例子

    第一步:点击录制宏 第二步:填写宏的方法名 第三步:进行一系列的操作之后,关闭宏 第四步:根据自己的需要查看,修改宏 第六步:保存,一般是另存为,后缀名为.xlsm,否则宏语言不能保存. 到此为止恭喜 ...

  2. 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示

    转自:http://blog.csdn.net/hyxiaohaiyang/article/details/7382551 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必 ...

  3. android中实现GPS定位功能,Android中实现GPS定位的简单例子

    今天弄了一个多小时,写了一个GPS获取地理位置代码的小例子,包括参考了网上的一些代码,并且对代码进行了一些修改,希望对大家的帮助.具体代码如下:  要实用Adnroid平台的GPS设备,首先需要添加上 ...

  4. java spring server_Java server框架之(1):spring中的IoC

    为什么需要IoC? 一般的对象耦合是在编译时确定的,也就是说当我们写如下类: 1 public classStaticCoupling { 2 3 String s = new String(&quo ...

  5. python ioc框架_轻松理解 Spring 中的 IOC

    Spring 简介 Spring 是一个开源的轻量级的企业级框架,其核心是反转控制 (IoC) 和面向切面 (AOP) 的容器框架.我们可以把 Spring 看成是对象的容器,容器中可以包含很多对象, ...

  6. Spring/SpringBoot系列之Spring中涉及的9种设计模式【七】

    1. 总览 Spring中涉及的设计模式: 简单工厂(非23种设计模式中的一种) 工厂方法 单例模式 适配器模式 装饰器模式 代理模式 观察者模式 策略模式 模版方法模式 2. 详细介绍 2.1 简单 ...

  7. ppst——技术视频spring AOP 的原理讲解和简单实现

    ppst 技术视频--spring AOP 的原理讲解和简单实现:请访问ppst 技术视频分享平台 , www.ppst.cc,上面有最新的技术视频,推荐大家把博客录制成视频吧,可以获取收益哦 1.s ...

  8. Spring中ApplicationContext和beanfactory区别

    BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP ...

  9. spring中aop事务

    文章目录 事务 为什要用到Spring中AOP事务 事物的特性 ACID 事务并发问题 事务的隔离级别 spring事务管理 事务操作 事务操作对象 spring管理事务的属性介绍 spring管理事 ...

最新文章

  1. 海思3536:osdrv编译过程中报错及解决方法
  2. What is ORM ?
  3. EL表达式和标准标签库
  4. 《编写高质量代码改善JavaScript程序的188个建议》读书笔记
  5. 恐龙快跑小程序对接流量主源码+前端 v5.0.4 全开源微擎框架
  6. 【华为云技术分享】KubeFlow-Pipeline及Argo实现原理速析
  7. UI设计配色专辑,设计师应用技巧
  8. 开机后系统时间被恶意修改
  9. su: Authentication failure 的解决方案
  10. ABB变频器通过labview和上位机modbus通讯
  11. win8-cmd请求的操作需要提升
  12. 05【实操篇-文件目录类命令】
  13. 排列与组合中的递归策略(as3.0)
  14. RabbitMQ入门及笔记
  15. 【论文阅读】Automatic Detection of Various Malicious Traffic Using Side Channel Features on TCP Packets
  16. 拿到阿里,网易游戏,腾讯,smartx的offer的过程
  17. Eclipse插件6
  18. Linux下的有名管道---使用两个管道实现两个进程之间的通信(手机模式)
  19. STM32F103系列驱动MH-Z14A 二氧化碳(CO2)传感器详解,使用串口输出读取(后附免费免积分程序下载链接)
  20. html中文手文档,HTML5 中文参考手册(打印版)

热门文章

  1. 机房合作(一):我怎样做组长(敢于承担责任)
  2. 关于支付宝即时到帐异步通知(notify_url)一点总结
  3. 使用SharePoint 2010新增的文档集内容类型来管理文档
  4. 经济危机拒绝穷潇洒 试水充电战危机
  5. matlab 大括号
  6. java 权限url权限_SpringBootSecurity学习(11)网页版登录之URL动态权限
  7. CSDN转载博客的方法
  8. i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!
  9. 16福师计算机应用基础在线作业,16春季福师《计算机应用基础》在线作业二.doc...
  10. php pdo mysql query_PHP+MYSQL中使用PDO的query方法