我有标准文件夹结构:
src/main/java
src/main/resources
src/test/java
src/test/resources
我的appicationContext包含以下内容:
<!-- load properties files -->
<context:property-placeholder location="classpath*:*.properties"/>
我已定义了2个hibernate.properties
个文件 - 一个用于src/main/resources
,另一个用于src/ test/resources
。我预计当我运行测试时,我的测试hibernate.properties
将覆盖生产hibernate.properties
。而不是加载这两个文件并使用生产版本:
Loading properties file from file [D:\projects\video_crawler_v3\out\test\core\hibernate.properties]
Loading properties file from file [D:\projects\video_crawler_v3\out\production\core\hibernate.properties]
如何正确设置属性文件?我正在使用Intellij IDEA来编译和运行测试
答案 0 :(得分:2)
其中一个选项是Spring Profiles http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/
在context.xml中放置两个“属性”版本,例如:
<beans>
... your beans
<beans profile="prod">
<context:property-placeholder location="classpath:/hibernate.properties" />
</beans>
<beans profile="test">
<context:property-placeholder location="classpath:/test-hibernate.properties" />
</beans>
</beans>
使用-Dspring.profiles.active = test激活所需的配置文件。
注意:使用www.springframework.org/schema/beans/spring-beans-3.1.xsd
答案 1 :(得分:1)
即使在运行单元测试时,src / main / resources中的文件也始终添加到类路径中。请参阅:Common strategies when defining Spring beans for different environments