如果在依赖jar中,message.properties的类路径是什么

时间:2014-08-04 19:56:18

标签: java spring spring-mvc

我在Spring中创建了几个依赖jar文件,有些类需要Spring messageSource来加载i18n外部翻译。

因此,在maven中,我创建了以下资源来打包jar文件

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
            <targetPath>WEB-INF/i18n/</targetPath>
        </resource>
    </resources>

将这些i18n文件复制到%JAR_FILE%/WEB-INF/i18n/中,所以我希望Spring应用程序可以加载这些语言文件,但是失败了(抱怨No message found under code "THE_PROPERTY")。然后问题是,如果在Spring-config.xml中指定,可以弹簧扫描并加载WEB-INF\lib中依赖项下的所有类路径并包含所有这些.properties文件吗?

如果是这样,那么jar中文件的正确类路径应该是什么?

2 个答案:

答案 0 :(得分:1)

在MessageSource配置中使用classpath:

"classpath:/WEB-INF/i18n/messages/common"

当然,文件需要在类路径中。

答案 1 :(得分:0)

要在依赖jar中工作,你必须将所有属性文件放在每个项目的/ src / main / resources /中,然后按以下方式定义ResourceBundleMessageSource:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>file1</value>
            <value>file2</value>
            <value>file3</value>
        </list>
    </property>
</bean>

此定义将在每个jar类路径中查找