Eclipse 上で Spring MVC を使った Web アプリケーションを Maven プロジェクトとして作成する手順のメモです。
作業環境は、Eclipse Juno 4.2 for Java (Pleiades All in One) です。
STEP 1. Maven プロジェクトの作成
[ファイル] ⇒ [新規] ⇒ [その他] で「Maven プロジェクト」を選択します。次に表示される画面では、そのままの設定で「次へ」をクリックします(下図)。
次に表示される画面では、フィルタ―に「maven-archetype-webapp」と入力して少し待つと、下のリストに「maven-archetype-webapp」というアーティファクトIDの項目が表示されるので、それを選択して「次へ」をクリックします(下図)。
次に表示される画面では、グループID、アーティファクトID、パッケージ名を入力して「完了」をクリックします(下図)。
STEP 2. 欠落しているソースフォルダの作成
プロジェクトが生成されると、src/main/resource のみが存在しますが、プロジェクトの設定を見ると、ソースフォルダとしては src/main/java, src/main/resources, src/test/java が登録されています(バグ?)。なので、手動で src/main/java フォルダと src/test/java フォルダを作成します。
STEP 3. JRE のバージョンの変更
JRE システム・ライブラリーのバージョンが J2SE-1.5 になっているので、JavaSE-1.7 (java7) に変更します。
STEP 4. Spring Web MVC ライブラリの追加
Maven 依存関係の追加で、org.springframework spring-webmvc を追加します。
プロジェクト上で右クリック ⇒ [Maven] ⇒ [依存関係の追加] で表示される画面で、「グループID、アーティファクトIDまたは…」の欄に「spring-webmvc」と入力すると「org.springframework spring-webmvc」という項目が表示されるので、それを選択し「OK」をクリックします(下図)。
STEP 5. 動的Webプロジェクトへの変換
プロジェクト上で右クリック ⇒ [プロパティー] で、「プロジェクト・ファセット」を選択し、右に表示される画面で「ファセット・フォームへ変換…」をクリックします(下図)。
次に表示される画面の「プロジェクト・ファセット」のリストで「動的 Web モジュール」にチェックを入れ、リストの下に表示される「より詳しい構成が使用可能…」をクリックします(下図)。
コンテンツ・ディレクトリーの欄はデフォルトで「WebContent」になっていますが、これを「/src/main/webapp」に書き換え「OK」をクリックします(下図)。「web.xml デプロイメント記述子の生成」にはチェックを入れないようにします(Maven プロジェクト作成時に既に生成されています)。
プロパティーウィンドウ下の「OK」をクリックします。
STEP 5. DispatcherServlet の設定
web.xml 内に、全ての URL パターンに対して org.springframework.web.servlet.DispatcherServlet が呼び出されるようにするためのサーブレットの設定を記述します。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>mvcsample</display-name> <!-- Creates the Spring Container shared by all Servlets and Filters --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
STEP 6. dispatcher-servlet.xml の作成
STEP 5. で設定した「dispatcher」という名前のサーブレットに関する設定ファイルを準備します。 src/main/webapp/WEB-INF フォルダ内に、新規 XML ファイルを作成し、「dispatcher-servlet.xml」という名前にします(下図)。
このファイルに、以下のように記述します:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <mvc:annotation-driven /> <context:component-scan base-package="sample.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/views/" p:suffix=".jsp" /> </beans>
上記設定ファイルでは、以下の設定を行っています:
- Spring Framework 用のアノテーションを使用する
- View は WEB-INF/views にフォルダに格納した .jsp ファイルを使用する
- コンポーネントは sample.controller パッケージから探す
View の設定やコンポーネントの検索場所は必要に応じて変更してください。
STEP 7. Deployment Assembly への Maven 依存関係の追加
アプリケーション実行時にアプリケーションから Spring MVC のライブラリが参照できるようにするために、Deployment Assembly のリストに Maven 依存関係を追加します。
プロジェクト上で右クリック ⇒ [プロパティー] で、「Deployment Assembly」を選択し、右に表示される画面で「追加」をクリックします(下図)。
次に表示される画面で「Java Build Path Entries」を選択し、「次へ」をクリックします(下図)。
次に表示される画面で、「Maven 依存関係」を選択し、「完了」をクリックします(下図)。
プロジェクトのプロパティーウィンドウの「OK」をクリックしてプロパティーウィンドウを閉じます。
これでプロジェクトのセットアップは完了です。ここから Controller や View を作って Web アプリケーションを作成していくことができます。