slim3での基本的な開発手順
slim3 には、必要なプログラムを自動生成する機能が備わっています。
ですので、まずプログラムを自動生成し、要件に応じてロジックを個別に追加していくというのが基本的な開発スタイルになります。
今回は、この基本的な開発スタイルについて説明します。
1.プログラムの自動生成方法
プログラムの自動生成は、Ant を使用して行います。
slim3-blank プロジェクトの直下に、build.xml があります。
これを Eclipse 上で開くと、”gen-xxx”という名前のタスクを複数見つけることができます。
これらを実行することで、必要なプログラムを生成することができます。
ちなみに、各タスクと作成できる成果物は以下の通りです。
タスク名 | 成果物 |
gen-controller | FrontController+JSP |
gen-controller-without-view | FrontController(JSP なし) |
gen-model | Model(BigTable へ永続化するオブジェクト) |
gen-service | Service(ビジネスロジック) |
gen-gwt-service | Google Web Toolkit に対応した Service |
以下では、上記のうち特に使用頻度の高いであろう、
gen-controller・gen-model・gen-service の使い方を説明します。
※個別のプログラムについては、後日説明します。
2.gen-controller の使い方
(1)Eclipse で、build.xml を開きます。
(2)gen-controller タスクを右クリックし、
「Run As」→「Ant Build」を選択します。
(3)ダイアログが表示されるので、
controller のパスを指定します。
(a) controller のパスは、
"/" で始め、"/" で終了するようにします。
(b) controller のパスは、小文字で指定します。
(c) サブディレクトリを指定したい場合は、
"/<ディレクトリ名>/<ディレクトリ名>/
(d) 区切り文字に "." を指定すると
エラーになるので注意して下さい。
(4)次の3つのプログラムが生成されます。
(a) src/<パッケージルート>/controller/<入力したパス>/IndexController.java (b) test/<パッケージルート>/controller/<入力したパス>/IndexControllerTest.java (c) war/<入力したパス>/index.jsp
プログラム生成後、http://localhost:8080/<入力したパス>/ を指定すると、追加した JSP を表示することができます。
※hot deploy なので、サーバの再起動は不要です。
3.gen-model の使い方
(1)Eclipse で、build.xml を開きます。
(2)gen-model タスクを右クリックし、
「Run As」→「Ant Build」を選択します。
(3)ダイアログが表示されるので、
Model のクラス名を指定します。
(a) クラス名は、一文字目を大文字にします。
(b) パッケージを指定したい場合は、
"a.b.<クラス名>" のように指定します。
(c) 区切り文字に "/" を指定すると
エラーになるので注意して下さい。
(4)次の2つのプログラムが生成されます。
(a) src/<パッケージルート>/model/<入力したパッケージ>/<入力したクラス名>.java (b) test/<パッケージルート>/model/<入力したパッケージ>/<入力したクラス名>Test.java
4.gen-service の使い方
基本的には、gen-model と同様です。
(1)Eclipse で、build.xml を開きます。
(2)gen-service タスクを右クリックし、
「Run As」→「Ant Build」を選択します。
(3)ダイアログが表示されるので、
Service のクラス名を指定します。
(a) クラス名は、一文字目を大文字にします。
(b) パッケージを指定したい場合は、
"a.b.<クラス名>" のように指定します。
(c) 区切り文字に "/" を指定すると
エラーになるので注意して下さい。
(4)次の2つのプログラムが生成されます。
(a) src/<パッケージルート>/service/<入力したパッケージ>/<入力したクラス名>.java (b) test/<パッケージルート>/service/<入力したパッケージ>/<入力したクラス名>Test.java
次回
次回は、Model クラスについて詳細に触れる予定です。