0

我想要一个独立于项目的配置文件,我可以从不同的项目中访问它。我目前正在尝试的(并且根本没有给我好的结果):

<bean id="wroProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">  
<property name="location" value="${JBOSS_HOME}/standalone/configuration/wro.properties" />  
</bean>

我使用Spring 3JBoss 7.1。我的配置文件在jboss/standalone/configuration/....properties. 除此之外,我想从同一个目录中读取消息文件:

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="messages,local" />
    <property name="useCodeAsDefaultMessage" value="true" />
</bean>

目前它在文件夹中寻找messages.properties和?local.propertiessrc

4

2 回答 2

2

这是我最终使用的解决方案,它独立于平台且可移植:

<bean id="wroProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="location" value="file:#{systemProperties['jboss.home.dir']}/standalone/configuration/wro.properties" />  
</bean>

消息源的配置是相同的。

于 2013-09-04T11:09:20.003 回答
0

AResourceBundleMessageSource使用basenames提供给(和语言环境)来构建资源名称(例如message.properties),最终(在调用堆栈中)由java.util.ResourceBundle.Control#newBundle(...). 然后在从其根目录(例如/message.properties)开始的类路径中查找此资源名称。

如果您使用 Eclipse 之类的 IDE,那么您的类路径很可能从src.

如果jboss/standalone/configuration/...也在您的类路径中并且属性文件在其中,您可以basenames

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="jboss/standalone/configuration/messages,jboss/standalone/configuration/local" />
    <property name="useCodeAsDefaultMessage" value="true" />
</bean>
于 2013-09-03T15:06:03.353 回答