【问题标题】:context:property-placeholder not working if we use property file under src/test上下文:如果我们使用 src/test 下的属性文件,则属性占位符不起作用
【发布时间】:2015-09-15 08:44:00
【问题描述】:

我在spring中使用属性文件来配置数据源:

<bean id="mydataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass" value="${database.driver}" />
        <property name="jdbcUrl" value="${database.url}" />
        <property name="user" value="${database.username}" />
        <property name="password" value="${database.password}" />
         <property name="initialPoolSize" value="${database.initialpoolsize}" 
            />
         <property name="minPoolSize" value="${database.minpoolsize}" /> 
         <property name="maxPoolSize" value="${database.maxpoolsize}" /> 

    </bean>

这里是这个文件在spring中的配置

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

这个属性文件在 src/test/config/ 文件夹下,当我运行测试时它给了我这个错误:

java.lang.IllegalArgumentException: Could not resolve placeholder 'database.driver' in string value "${database.driver}"

有人可以帮我吗?

【问题讨论】:

  • 将其移至src/main/resources/,即添加到类路径中的内容,如果仅用于测试目的,则将其移至src/test/resources/
  • 是的,我已将其移至 src/test/resources 并且它正在工作,但对于该项目,我必须遵循这种做法(基于其他项目)所以我不知道是否必须添加一些配置行家?

标签: spring maven testing properties-file


【解决方案1】:

放置在src/main/resources 中的资源将可用于运行时类路径,因为它们被资源插件复制到目标/类,如果您想要特定于测试类的属性文件,那么它应该放在src/test/resources

如果你想放在src/test/config下面

<project>
 ...
 <build>
   ...
   <resources>
     <resource>
       <directory>src/test/config</directory>
     </resource>
   </resources>
   ...
 </build>
 ...
</project>

【讨论】:

  • 如果我想把这个属性文件放在 src/test/config 下可以吗?
  • 我在 pom.xml 上添加了该配置,并在 spring 中使用此配置:但它没有工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 2013-12-06
  • 2012-08-03
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
相关资源
最近更新 更多