我在将消息值带到属性文件时遇到问题。
我正在使用intelliJ IDEA,我有一个包
com.test.messages
在里面我有messages.properties文件。
这是我的xml
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="com.test.messages.messages"/>
</bean>
当我重新启动服务器时,这是我收到的警告
WARNING: ResourceBundle [com.test.messages.messages] not found for MessageSource: Can't find bundle for base name com.test.messages.messages, locale en_US
有什么想法吗?
答案 0 :(得分:0)
你的项目中应该有一个文件:
src\main\resources\com\test\messages.properties
答案 1 :(得分:0)
虽然我不是IDEA专家,但我知道在单独使用IDE时,放置在源代码层次结构中的.property文件等资源会被复制到类路径中。但是,如果您使用maven,那么它将接管构建,并且默认情况下不会复制java路径中的任何内容。您必须将所有类路径资源放在src\main\resources
中,并在任何层次结构中镜像包名称以获得相同的结果。所以在你的情况下:
src\main\resources\com\test\messages\messages.properties
并且maven将正确复制
答案 2 :(得分:0)
不要将属性保留在包中。 资源目录是保持内部属性的标准位置。
/src/main/resources
或
/src/test/resources
如果要将属性与项目分开 - 请使用这种弹簧配置:
<bean id="props" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
<property name="ignoreResourceNotFound" value="true"/>
<property name="localOverride" value="true"/>
<property name="locations">
<list>
<value>classpath*:messages.properties</value>
<value>file:messages.properties</value>
</list>
</property>
</bean>
因此,您可以使用外部覆盖内部属性(不要忘记使用-cp添加到类路径)。
无论如何,声明的声明将如下所示:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="${property.name}"/>
</bean>
答案 3 :(得分:0)
我知道这是个老问题,但让我放弃我的解决方案:)
源文件夹(resources
不是包):
/src/main/java/
somepackage/abc.java
/src/main/resources/
messages.properties
Eclipse 默认输出 java 构建路径:
myProject/build/classes
Eclipse 默认部署路径:
WEB-INF/classes
我项目的 spring 上下文 XML 文件路径:
/src/main/webapp/WEB-INF/context.xml
注入资源包,
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="messages"/>
</bean>
正如 Azee 所说,不鼓励将属性保存在包中。如果 messages.properties
在 resources
包中,如下所示:
/src/resources/messages.properties
context.xml 应该是这样的:
<property name="basenames" value="resources/messages"/>