zoukankan      html  css  js  c++  java
  • springframework中使用ReloadableResourceBundleMessageSource加载properties文件的问题

    这个问题也困扰了我很久,呵呵。。。以前感觉这个问题很简单,可就是不成功。昨天下午找到了原因。

    失败的配置:

     <!-- 国际化的消息资源文件 -->
        <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <property name="defaultEncoding" value="UTF-8"/>
            <property name="basenames">
                <list>
                    <value>message</value>
                    <value>ValidationMessages</value>
                </list>
            </property>
            <property name="cacheSeconds" value="60"/>
            <property name="useCodeAsDefaultMessage" value="false"/>
        </bean>

    按照上述配置,资源文件总是加载不了,但是这里可以把ReloadableResourceBundleMessageSource改为ResourceBundleMessageSource就可以加载了。

    问题出在哪儿了呢?

    我这里使用的开发ide是JetBrains的Intellij IDEA13,交叉语言开发最好的工具了,在编写过程中提供了很多便利,例如在设置basenames时,自动找到了message、ValidationMessages,对于开发工具来说相信它没错的。结果这里就是不行。

    查看源码:

    this.propertiesPersister.load(props, new InputStreamReader(is, encoding));

    ReloadableResourceBundleMessageSource类中加载properties文件的方法。与Properties prop = new Properties(); prop.load(ins)一样的。

    这里的ins就是文件的输入流InputStream,在加载时需要指定加载文件的路径.

    因此修改上面的配置如下:

    <!-- 国际化的消息资源文件 -->
        <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <property name="defaultEncoding" value="UTF-8"/>
            <property name="basenames">
                <list>
                    <value>classpath:message</value>
                    <value>classpath:ValidationMessages</value>
                </list>
            </property>
            <property name="cacheSeconds" value="60"/>
            <property name="useCodeAsDefaultMessage" value="false"/>
        </bean>

    唯一不同的地方就是在message前加入了表明路径的classpath:

  • 相关阅读:
    谈谈 OC 中的内联函数
    Spring 新手教程(二) 生命周期和作用域
    实时竞价(RTB) 介绍(基础篇)
    oracle数据库性能优化方案精髓整理收集回想
    HNU 13411 Reverse a Road II(最大流+BFS)经典
    CSS3主要知识点复习总结+HTML5新增标签
    修改默认MYSQL数据库data存放位置
    mysql状态查看 QPS/TPS/缓存命中率查看
    Mysql5.7.10新加用户
    很靠谱linux常用命令
  • 原文地址:https://www.cnblogs.com/linxyz/p/3672959.html
Copyright © 2011-2022 走看看