MavenとSpringによるMVC技法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2008/01/11からのアクセス回数 &counter;
* Mavenを使ったSpring-MVC開発 [#f2651843]
** Spring-MVC用プラグインのインストール [#j25f2480]
今回独自にSpring-MVC用のプラグインを開発しました。
- Spring-MVC用のmavenのarcheTypeプラグイン
#ref(spring-mvc-archetype-1.0-SNAPSHOT.jar)
- spring-mvc-archetypeのpomファイル
#ref(spring-mvc-archetype-1.0-SNAPSHOT.pom)
- domainのモデルクラスの定義から、Spring-MVCに必要なファ...
#ref(maven-GenMVC-plugin-1.0-SNAPSHOT.jar)
- maven-GenMVC-pluginのpomファイル
#ref(maven-GenMVC-plugin-1.0-SNAPSHOT.pom)
上記の添付ファイルをダウンロードしてください。
この他にSunが提供するjta用のライブラリが必要です。
- http://java.sun.com/products/jta/ からjta_1_0_1B-class....
#ref(jta-1_0_1B-classes.zip)
-
次に以下のコマンドを実行してください。
#pre{{
mvn install:install-file \
-Dfile=./spring-mvc-archetype-1.0-SNAPSHOT.jar \
-DgroupId=jp.co.pwv.spring-mvc-archetype \
-DartifactId=spring-mvc-archetype \
-Dversion=1.0-SNAPSHOT \
-DpomFile=./spring-mvc-archetype-1.0-SNAPSHOT.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./maven-GenMVC-plugin-1.0-SNAPSHOT.jar \
-DgroupId=org.apache.maven.plugins \
-DartifactId=maven-GenMVC-plugin \
-Dversion=1.0-SNAPSHOT \
-DpomFile=./maven-GenMVC-plugin-1.0-SNAPSHOT.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./jta-1_0_1B-classes.zip \
-DgroupId=javax.transaction \
-DartifactId=jta \
-Dversion=1.0.1B \
-Dpackaging=jar
}}
** 最初の一歩(Spring-MVCのひな形をつくる) [#db1983de]
準備が整ったので、Spring-MVCを試すためにspring-mvc-archet...
spring-mvc-archetypeは、以下の形式で使います。
#pre{{
mvn archetype:create \
-DgroupId=パッケージ名 \
-DartifactId=サーブレット名 \
-DarchetypeArtifactId=spring-mvc-archetype \
-DarchetypeGroupId=jp.co.pwv.spring-mvc-archetype \
-DarchetypeVersion=1.0-SNAPSHOT
}}
例題では、
#pre{{
mvn archetype:create \
-DgroupId=example.test \
-DartifactId=test \
-DarchetypeArtifactId=spring-mvc-archetype \
-DarchetypeGroupId=jp.co.pwv.spring-mvc-archetype \
-DarchetypeVersion=1.0-SNAPSHOT
}}
とします。
途中、以下のようにWARINGが出力されます。
#pre{{
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'arch...
[INFO] --------------------------------------------------...
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-st...
[INFO] --------------------------------------------------...
.....
[WARNING] org.apache.velocity ... /db-def.xml [line 18,co...
[WARNING] org.apache.velocity ... /db-def.xml [line 21,co...
.....
[INFO] Archetype created in dir: /Users/take/tmp/test
[INFO] --------------------------------------------------...
[INFO] BUILD SUCCESSFUL
[INFO] --------------------------------------------------...
[INFO] Total time: 3 seconds
[INFO] Finished at: Sat Jan 12 14:40:50 JST 2008
[INFO] Final Memory: 5M/9M
[INFO] --------------------------------------------------...
}}
これは、ひな形にVelocityの変数参照のような形式が埋め込ま...
生成されたファイルを見てみましょう。
#pre{{
cd test
ls -R
}}
とするとどのようなファイルが生成されたか分かります。
またeclipseでこのプロジェクトが管理できるようにeclipseプ...
#pre{{
mvn eclipse:eclipse
}}
eclipseで生成されたファイルをみると次のようになります。
&ref(生成されたファイル.jpg);
このプログラムでは、hsqldbのデータベースを使用するため設...
src/main/webapp/WEB-INF/jdbc.propertiesの以下の部分を変更...
#pre{{
# サーバとして使用する場合
#db.url=jdbc:hsqldb:hsql://localhost
# スタンドアローンで使用する場合
db.url=jdbc:hsqldb:/tomcatのフルパス/webapps/test/WEB-INF...
}}
''Windowsの場合には、エディタでjdbc.propertiesの改行コー...
hsqldbをサーバとして使用する場合には、db.url=jdbc:hsqldb:...
** 実行 [#m9310134]
作成したtestサーブレットを実行するためには、mavenのpackag...
#pre{{
maven package
}}
warファイルは、target/test.warに生成されます。
これをtomcatのwebappsにコピーします。
ブラウザーでhttp://localhost:8080/test/
と入力すると、以下のページが表示されます。
#ref(test.jpg);
- [edit]リンクを押すと編集画面が表示されます
- [delete]リンクを押すとデータが削除されます
- addリンクを押すと新規データ編集画面が表示されます
編集画面は、以下のようなページです。
#ref(edit.jpg);
** モデルからひな形を生成する [#k5a24bd8]
最近の自動生成ツールがデータベースのテーブルからMVCのプロ...
のが多いのですが、ここではモデルからMVCのプログラムのひな...
生成する方法を示します。
GenMVCプラグインは、pring-mvc-archetypeで生成されたプロジ...
それ以外のプロジェクトでは正常に動作しませんので、ご注意...
*** モデルファイルの作成 [#s0477b10]
eclipseでexample.test.domainパッケージにScheduleクラスを...
''クラスには、必ずInteger id;のフィールドを追加してくださ...
#pre{{
import java.util.Calendar;
import java.util.Date;
public class Schedule {
private Integer id;
private Date datetime = Calendar.getInstance().getTime();
private String title;
private String text;
}
}}
と入力して、右クリックでsource->Generate Getter And Sette...
すべてのGetter, Setterを生成します。
完成したScheduleクラスは次のようになります。
#pre{{
package example.test.domain;
import java.util.Calendar;
import java.util.Date;
public class Schedule {
private Integer id;
private Date datetime = Calendar.getInstance().getTime();
private String title;
private String text;
public Date getDatetime() {
return datetime;
}
public void setDatetime(Date datetime) {
this.datetime = datetime;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}}
*** ひな形の生成 [#w3bd5233]
GenMVCプラグインを使ってScheduleクラスをモデルとしたコン...
#pre{{
mvn package
mvn GenMVC:scaffold
}}
新しく生成されたファイルは、
- java/example/test/service/ISchedule.java
- java/example/test/service/ScheduleManager.java
- java/example/test/service/stub/ScheduleDao.java
- java/example/test/service/web/EditScheduleController.java
- java/example/test/service/web/ScheduleOpsController.java
- webapp/WEB-INF/hbm-dir/Member.hbm.xml
- webapp/WEB-INF/velocity/scheduleops/list_stub.vm
- webapp/WEB-INF/velocity/scheduleops/list.vm
- webapp/WEB-INF/velocity/editSchedule_stub.vm
- webapp/WEB-INF/velocity/editSchedule.vm
変更のあったファイルは、
- webapp/WEB-INF/sql/createTable.sql
- webapp/WEB-INF/applicationContext.xml
- webapp/WEB-INF/servlet-stub.xml
です。
最初の実行と同様にwarファイルを生成します。
#pre{{
mvn package
}}
test.warファイルをtomcat/webappsにコピーします。
ブラウザーでhttp://localhost:8080/test/scheduleops/list.h...
addリンクだけのページ表示されますので、addリンクをクリッ...
#ref(editschedule.jpg);
データを入力してSave Changesボタンを押すと
#ref(listschedule.jpg);
が表示され、データが正しく入力されていることが確認できま...
** コメント [#x4a60c7b]
この記事は、
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2008/01/11からのアクセス回数 &counter;
* Mavenを使ったSpring-MVC開発 [#f2651843]
** Spring-MVC用プラグインのインストール [#j25f2480]
今回独自にSpring-MVC用のプラグインを開発しました。
- Spring-MVC用のmavenのarcheTypeプラグイン
#ref(spring-mvc-archetype-1.0-SNAPSHOT.jar)
- spring-mvc-archetypeのpomファイル
#ref(spring-mvc-archetype-1.0-SNAPSHOT.pom)
- domainのモデルクラスの定義から、Spring-MVCに必要なファ...
#ref(maven-GenMVC-plugin-1.0-SNAPSHOT.jar)
- maven-GenMVC-pluginのpomファイル
#ref(maven-GenMVC-plugin-1.0-SNAPSHOT.pom)
上記の添付ファイルをダウンロードしてください。
この他にSunが提供するjta用のライブラリが必要です。
- http://java.sun.com/products/jta/ からjta_1_0_1B-class....
#ref(jta-1_0_1B-classes.zip)
-
次に以下のコマンドを実行してください。
#pre{{
mvn install:install-file \
-Dfile=./spring-mvc-archetype-1.0-SNAPSHOT.jar \
-DgroupId=jp.co.pwv.spring-mvc-archetype \
-DartifactId=spring-mvc-archetype \
-Dversion=1.0-SNAPSHOT \
-DpomFile=./spring-mvc-archetype-1.0-SNAPSHOT.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./maven-GenMVC-plugin-1.0-SNAPSHOT.jar \
-DgroupId=org.apache.maven.plugins \
-DartifactId=maven-GenMVC-plugin \
-Dversion=1.0-SNAPSHOT \
-DpomFile=./maven-GenMVC-plugin-1.0-SNAPSHOT.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./jta-1_0_1B-classes.zip \
-DgroupId=javax.transaction \
-DartifactId=jta \
-Dversion=1.0.1B \
-Dpackaging=jar
}}
** 最初の一歩(Spring-MVCのひな形をつくる) [#db1983de]
準備が整ったので、Spring-MVCを試すためにspring-mvc-archet...
spring-mvc-archetypeは、以下の形式で使います。
#pre{{
mvn archetype:create \
-DgroupId=パッケージ名 \
-DartifactId=サーブレット名 \
-DarchetypeArtifactId=spring-mvc-archetype \
-DarchetypeGroupId=jp.co.pwv.spring-mvc-archetype \
-DarchetypeVersion=1.0-SNAPSHOT
}}
例題では、
#pre{{
mvn archetype:create \
-DgroupId=example.test \
-DartifactId=test \
-DarchetypeArtifactId=spring-mvc-archetype \
-DarchetypeGroupId=jp.co.pwv.spring-mvc-archetype \
-DarchetypeVersion=1.0-SNAPSHOT
}}
とします。
途中、以下のようにWARINGが出力されます。
#pre{{
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'arch...
[INFO] --------------------------------------------------...
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-st...
[INFO] --------------------------------------------------...
.....
[WARNING] org.apache.velocity ... /db-def.xml [line 18,co...
[WARNING] org.apache.velocity ... /db-def.xml [line 21,co...
.....
[INFO] Archetype created in dir: /Users/take/tmp/test
[INFO] --------------------------------------------------...
[INFO] BUILD SUCCESSFUL
[INFO] --------------------------------------------------...
[INFO] Total time: 3 seconds
[INFO] Finished at: Sat Jan 12 14:40:50 JST 2008
[INFO] Final Memory: 5M/9M
[INFO] --------------------------------------------------...
}}
これは、ひな形にVelocityの変数参照のような形式が埋め込ま...
生成されたファイルを見てみましょう。
#pre{{
cd test
ls -R
}}
とするとどのようなファイルが生成されたか分かります。
またeclipseでこのプロジェクトが管理できるようにeclipseプ...
#pre{{
mvn eclipse:eclipse
}}
eclipseで生成されたファイルをみると次のようになります。
&ref(生成されたファイル.jpg);
このプログラムでは、hsqldbのデータベースを使用するため設...
src/main/webapp/WEB-INF/jdbc.propertiesの以下の部分を変更...
#pre{{
# サーバとして使用する場合
#db.url=jdbc:hsqldb:hsql://localhost
# スタンドアローンで使用する場合
db.url=jdbc:hsqldb:/tomcatのフルパス/webapps/test/WEB-INF...
}}
''Windowsの場合には、エディタでjdbc.propertiesの改行コー...
hsqldbをサーバとして使用する場合には、db.url=jdbc:hsqldb:...
** 実行 [#m9310134]
作成したtestサーブレットを実行するためには、mavenのpackag...
#pre{{
maven package
}}
warファイルは、target/test.warに生成されます。
これをtomcatのwebappsにコピーします。
ブラウザーでhttp://localhost:8080/test/
と入力すると、以下のページが表示されます。
#ref(test.jpg);
- [edit]リンクを押すと編集画面が表示されます
- [delete]リンクを押すとデータが削除されます
- addリンクを押すと新規データ編集画面が表示されます
編集画面は、以下のようなページです。
#ref(edit.jpg);
** モデルからひな形を生成する [#k5a24bd8]
最近の自動生成ツールがデータベースのテーブルからMVCのプロ...
のが多いのですが、ここではモデルからMVCのプログラムのひな...
生成する方法を示します。
GenMVCプラグインは、pring-mvc-archetypeで生成されたプロジ...
それ以外のプロジェクトでは正常に動作しませんので、ご注意...
*** モデルファイルの作成 [#s0477b10]
eclipseでexample.test.domainパッケージにScheduleクラスを...
''クラスには、必ずInteger id;のフィールドを追加してくださ...
#pre{{
import java.util.Calendar;
import java.util.Date;
public class Schedule {
private Integer id;
private Date datetime = Calendar.getInstance().getTime();
private String title;
private String text;
}
}}
と入力して、右クリックでsource->Generate Getter And Sette...
すべてのGetter, Setterを生成します。
完成したScheduleクラスは次のようになります。
#pre{{
package example.test.domain;
import java.util.Calendar;
import java.util.Date;
public class Schedule {
private Integer id;
private Date datetime = Calendar.getInstance().getTime();
private String title;
private String text;
public Date getDatetime() {
return datetime;
}
public void setDatetime(Date datetime) {
this.datetime = datetime;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}}
*** ひな形の生成 [#w3bd5233]
GenMVCプラグインを使ってScheduleクラスをモデルとしたコン...
#pre{{
mvn package
mvn GenMVC:scaffold
}}
新しく生成されたファイルは、
- java/example/test/service/ISchedule.java
- java/example/test/service/ScheduleManager.java
- java/example/test/service/stub/ScheduleDao.java
- java/example/test/service/web/EditScheduleController.java
- java/example/test/service/web/ScheduleOpsController.java
- webapp/WEB-INF/hbm-dir/Member.hbm.xml
- webapp/WEB-INF/velocity/scheduleops/list_stub.vm
- webapp/WEB-INF/velocity/scheduleops/list.vm
- webapp/WEB-INF/velocity/editSchedule_stub.vm
- webapp/WEB-INF/velocity/editSchedule.vm
変更のあったファイルは、
- webapp/WEB-INF/sql/createTable.sql
- webapp/WEB-INF/applicationContext.xml
- webapp/WEB-INF/servlet-stub.xml
です。
最初の実行と同様にwarファイルを生成します。
#pre{{
mvn package
}}
test.warファイルをtomcat/webappsにコピーします。
ブラウザーでhttp://localhost:8080/test/scheduleops/list.h...
addリンクだけのページ表示されますので、addリンクをクリッ...
#ref(editschedule.jpg);
データを入力してSave Changesボタンを押すと
#ref(listschedule.jpg);
が表示され、データが正しく入力されていることが確認できま...
** コメント [#x4a60c7b]
この記事は、
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc