2

標準のMavenフォルダー構造があります:

src/main/java  
src/main/resources  
src/test/java  
src/test/resources  

私のappicationContextには次のものが含まれています。

<!-- load properties files -->
<context:property-placeholder location="classpath*:*.properties"/>

hibernate.properties2つのファイルを定義しました。1つは用src/main/resources、もう1つは用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]  

プロパティファイルを正しく設定するにはどうすればよいですか?IntellijIDEAを使用してテストをコンパイルおよび実行しています

4

2 に答える 2

2

オプションの1つは、Springプロファイルhttp://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/です。

context.xmlに2つの「プロパティ」バージョンを配置します。例:

<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を使用してください

于 2012-11-27T09:31:01.357 に答える
1

src/main/resources 内のファイルは、単体テストを実行している場合でも、常にクラスパスに追加されます。これを参照してください:さまざまな環境でSpring Beanを定義するときの一般的な戦略

于 2012-11-27T09:44:16.283 に答える