属性文件无法解析

时间:2014-04-03 10:52:21

标签: java spring properties

我有2个maven模块 - WebappPersistence。持久性模块有一个属性文件 - database.properties和两个上下文文件 - persistenceContext.xml(主要),datasourceContext.xml(导入persistenceContext.xml)。

persistenceContext.xml

<context:annotation-config/>
<tx:annotation-driven transaction-manager="transactionManager" />
<context:component-scan base-package="com.example.persistence"/>

<context:property-placeholder location="classpath:database.properties, classpath:application.properties" />

<import resource="classpath:datasourceContext.xml" />

文件persistenceContext.xml, datasourceContext.xmldatabase.properties位于resources模块的Persistence目录中。

datasourceContext.xml

<bean id="dataSource" destroy-method="close"
          class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <property name="jdbcUrl" value="${database.url}"/>
    <property name="user" value="${database.username}"/>
    <property name="password" value="${database.password}"/>
    <property name="debugUnreturnedConnectionStackTraces" value="true"/>
    <property name="unreturnedConnectionTimeout" value="20"/>
    <property name="minPoolSize" value="5"/>
    <property name="initialPoolSize" value="10"/>
    <property name="maxPoolSize" value="50"/>
    <property name="maxStatements" value="50"/>
    <property name="idleConnectionTestPeriod" value="120"/>
    <property name="maxIdleTime" value="1200"/>
 </bean>

database.properties

database.url=jdbc:mysql://255.255.255.255:3306/...
database.username=...
database.password=...

Persistence maven模块是Webapp模块的依赖项。当我将Webapp部署到Tomcat时,它失败并出现异常:

org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in class path resource [spring-datasource.xml]: Could not resolve placeholder 'database.url' in string value "${database.url}"

我尝试了以下解决方案:

  1. 在目录路径resources\com\example\persistence下移动了database.properties。
  2. property-placeholder中使用PropertyPlaceholderConfigurerdatasourceContext.xml,而不是property-placeholder中使用persistenceContext.xml
  3. 移动Webapp模块下的database.properties,然后尝试第1点。
  4. 我始终确信database.properties文件位于Persistence模块的类路径下。
  5. 没有提到的任何内容不起作用,我也查看了stackoverflow和spring论坛上的其他主题 - 但没有成功。

0 个答案:

没有答案