Mis mensajes.propiedades es realmente un archivo de gran tamaño.
Así, traté de mover algunas de las propiedades de los mensajes.propiedades a un archivo nuevo, decir newmessages.propiedades y actualizado de la primavera de frijol de configuración xml con los archivos de la siguiente manera:

<bean id="messageSource"
      class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:i18n/messages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

<bean id="anotherMessageSource"
      class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:i18n/newmessages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

Pero, no soy capaz de acceder a cualquiera de las propiedades definidas en el nuevo archivo de propiedades.
Es realmente posible especificar varios archivos de propiedades(para una única configuración regional)?

InformationsquelleAutor Arjun | 2011-04-11

4 Comentarios

  1. 43

    La basenames (s al final) propiedad aceptar una matriz de basenames:

    Establecer una matriz de basenames, cada uno de los siguientes de la mencionada convención especial. Los asociados de paquetes de recursos serán revisados de forma secuencial cuando la resolución de un código de mensaje.

    @ver java doc: ReloadableResourceBundleMessageSource.setBasenames

    Así que usted debe tener sólo uno de los mensajes de la fuente, con una lista de archivos (intentar seperatate ellos por coma).

    <bean id="anotherMessageSource"
          class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames" value="classpath:i18n/newmessages,classpath:i18n/messages"/>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>
  2. 20

    Otra manera limpia a hacer la misma:

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <property name="basenames">
                <list>
                    <value>classpath:messages1</value>
                    <value>classpath:messages2</value>
                </list>
            </property>
            <property name="defaultEncoding" value="UTF-8"/>
    </bean>
    • decir que tengo message1_en,message2_en y m el envío es como la configuración regional que el tiempo de cómo la primavera llegará a saber que archivo?? @spgodara
  3. 1

    Solución alternativa a los ya mencionados sería el uso de la propiedad parentMessageSource a los delegados que el mensaje de búsqueda para el padre si no la encuentra en la instancia actual.

    En tu caso, probablemente es mejor quedarse con la basenames matriz. Tener el jerárquica de origen del mensaje podría tener más sentido si el mensaje de fuentes estaban utilizando diferentes implementaciones. E. g. la segunda lectura de mensajes de db.

    Tenga en cuenta que en este caso, cuando la Primavera se encuentra a dos instancias de MessageSource, por lo que el principal será el uno con el id messageSource.

    <bean id="messageSource"
      class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="parentMessageSource"><ref bean="anotherMessageSource"/></property>
        <property name="basename" value="classpath:i18n/messages"/>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>
    
    <bean id="anotherMessageSource"
      class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:i18n/newmessages"/>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

Dejar respuesta

Please enter your comment!
Please enter your name here