使用MessageSource来管理国际化的消息资源文件

Posted qinshuxiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用MessageSource来管理国际化的消息资源文件相关的知识,希望对你有一定的参考价值。

spring的配置文件中,MessageSource的配置如下

<!-- 国际化的消息资源文件(一般系统中主要用于显示/错误消息定制) -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <!-- 在web环境中一定要定位到classpath 否则默认到当前web应用下找  -->
                <value>classpath:messages/messages</value>
                <value>classpath:messages/ValidationMessages</value>
            </list>
        </property>
        <property name="useCodeAsDefaultMessage" value="true"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <!--<property name="cacheSeconds" value="60"/>-->
    </bean>

useCodeAsDefaultMessage:表示当配置文件中key对应的value为空时,是否使用key作为返回值,默认为false(当value为空时,抛出NoSuchMessageException);

 

defaultEncoding:默认编码格式;

cacheSeconds:刷新资源文件的周期,以秒为单位,默认值为-1,表示永不刷新;

题外话:ResourceBundleMessageSource和ReloadableResourceBundleMessageSource的唯一区别就是后者提供了定时刷新的属性。

 

以上是关于使用MessageSource来管理国际化的消息资源文件的主要内容,如果未能解决你的问题,请参考以下文章

Spring BootSpringMVC进行i18n国际化支持:使用MessageSource

Spring BootSpringMVC进行i18n国际化支持:使用MessageSource

I18n 用于自定义错误消息到 JPA 实体中

MessageSource Spring:NotSerializableException

Thymeleaf + Spring (not Boot) - 如何显示来自 messageSource 的消息

从源码MessageSource的三个实现出发实战spring·i18n国际化