我正在使用Jboss 6来部署项目。我想要的是拥有一个datasource.properties文件并使用该文件来定义数据源bean。我做了这个,但得到错误“无法解决字符串值中的占位符”。
我的datasource.properties文件放在config module jboss文件夹中。
并在我的应用程序上下文中添加了
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:datasource.properties</value>
</property>
</bean>
bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
这是我的datasource.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mkyongjava
jdbc.username=root
jdbc.password=password
任何帮助将不胜感激。
答案 0 :(得分:1)
将您的属性文件放在 src / main / resources 下,然后重试。
=====================================
以下参考资料来自this article.,这可能有所帮助。
<强> 8。亲子背景中的属性
这个问题一再出现 - 当你的网络应用程序有父母和子女上下文时会发生什么?父上下文可能具有一些共同的核心功能和bean,然后是一个(或多个)子上下文,可能包含servlet特定的bean。在这种情况下,定义属性文件并将它们包含在这些上下文中的最佳方法是什么?更重要的是 - 如何最好地从Spring中检索这些属性?这是简单的细分。
<强> 8.1。如果使用
在XML中定义属性文件如果文件是在Parent上下文中定义的:
@Value在子上下文中工作:否
@Value在Parent上下文中工作:是
如果文件是在子上下文中定义的:
@Value在子上下文中工作:是
@Value在Parent上下文中起作用:NO
最后,正如我们之前讨论的那样,不会将属性公开给环境,所以:
environment.getProperty可在任一上下文中使用:NO