获取“无法解析字符串值中的占位符”

时间:2016-07-21 11:41:13

标签: spring jboss6.x

我正在使用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

任何帮助将不胜感激。

1 个答案:

答案 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