我在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中文件的正确类路径应该是什么?
答案 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类路径中查找