如何在Spring中读取jBoss配置文件?

时间:2013-09-03 14:50:28

标签: java spring spring-mvc jboss

我希望有一个项目独立的配置文件,我可以从不同的项目访问。我目前正在尝试(并没有给我很好的结果):

<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

2 个答案:

答案 0 :(得分: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>

消息源的配置完全相同。

答案 1 :(得分:0)

ResourceBundleMessageSource使用提供给basenames(和语言环境)来构建资源名称(例如message.properties),最终(在调用堆栈中)/message.properties使用3}}。然后在从其根开始的类路径中查找此资源名称(例如src)。

如果你使用像Eclipse这样的IDE,你的类路径很可能从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> 更改为

{{1}}