1

Mavenビルドmaven-jetty-pluginのフェーズでSpringMVCWebアプリを実行し、さまざまなテストを実行するためにを使用しています。integration-testこの時点で、Spring構成の一部を切り替えて、統合テスト中に別のBean実装を指定できるようにしたいと思います。これは、実稼働接続設定を使用するのではなく、実行するデータベースを変更できるようにするためです。

どのようなアプローチを検討する必要がありますか?servlet-context.xmlファイルでリソースフィルタリングを使用する必要がありますか?2つの異なる構成ファイルが必要ですか?Jettyプラグインでこれをうまく再生するにはどうすればよいですか?

編集:XMLサーブレットコンテキストファイルよりもSpringのJavaベースの@Configurationアノテーションを使用し、環境変数などに基づいて作成するBeanの種類を切り替えることを検討していますが、これも間違っていると感じています。

4

2 に答える 2

1

スプリングプロファイル+Mavenフィルタリングの使用をお勧めします:

  1. コマンドラインから上書きできるpom.xmlのプロパティを定義します:-Dspring.profile.active = development

         <properties>
                <spring.profile.active>test</spring.profile.active>
         </properties>
    
  2. pom.xmlにリソースフィルタリングを追加します。web.xmlがディレクトリsrc/main/resourcesにあることを確認してください。

     <resources>  
           <resource>  
             <directory>src/main/resources</directory>  
             <filtering>true</filtering>  
           </resource>  
     </resources> 
    
  3. web.xmlの特定のスプリングプロファイルをアクティブにします。フィルタリング後に${spring.profile.active}が置き換えられます。

    <context-param>  
        <param-name>spring.profiles.active</param-name>  
        <param-value>${spring.profile.active}</param-value>  
    </context-param> 
    
  4. 春のプロファイルでBeanを定義する

    <beans profile="production">  
         <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/datasource"/>  
    </beans>  
    
于 2013-01-23T11:45:08.027 に答える
0

以前は、jetty-maven-plugin構成と統合テスト構成を含むプロファイルを常に作成していました。

しかし、spring-test-mvcについて知ったとき、jetty-maven-pluginを使用した統合テストで達成したいすべてのことを達成できるため、それに切り替えました。さらに、必要なサービスをモックすることができます(たとえば、別のアプリでの認証)。

したがって、spring-test-mvcに切り替えることをお勧めします。IMHO、jetty-maven-pluginスタイルは非常に苦痛です。

于 2013-01-20T16:21:41.010 に答える