Play! Framework クイックスタート

Play! FrameworkJava VM 上で動作するフルスタックの軽量 Web フレームワークScala にも対応しており、Java の静的型システムや豊富なライブラリ、高速性を生かしつつ Ruby on Rails を更にシンプルにしたような手軽さといった印象です。

個人的にはプレゼンテーション層には RoR のような変わり身の速いもの、ビジネスロジック層には Java のようなロバストネスなものが適していると考えてるので、Play! が RoR と同等の手軽さなら実行環境の面で RoR よりベターな選択です。Rails もバージョンが進んでかなりモノリシックでヘビーなフレームワークになってしまいましたし。

以下 Play! の特徴など。

  • RoR で見たような使い方やファイルの配置。
  • 修正後のコンパイルやデプロイ、リスタートが不要。
  • Groovy ベースのテンプレートエンジン。ビューの記述が手軽。
  • データベースへのアクセスは JPA ベースで SQL の記述が不要。
  • Hibernate, OpenID, memcached などに対応したフルスタックなプラグインシステム。
  • Stateless で REST。
  • 非同期 I/O、WebSockets に対応。
  • バンドルに jQuery も入ってる。
  • gems のようにモジュールを追加できる。

このようなイマドキの Web 開発に必須の要件を満たすため敢えて Servlet API を捨てたそうです (WAR 化して通常のサーブレットコンテナで動かすことは可能です)。また controllers と言ったパッケージ命名や public なインスタンス変数など Java の"こうあるべき"慣例がいくつか覆されています。ここらへんは賛否あるかと思いますが、Web 周辺のような汎用性の低い部分では行き過ぎた抽象化や再利用性を求めなくても良いかなと思っています。

スタートアップページまでの手順

  1. Getting Started with Play Framework から最新版 play-1.2.4.zip をダウンロード。
  2. 例として C:\Program Files に解凍。つまり C:\Program Files\play-1.2.4 が Play! Framework のインストールディレクトリとします。
  3. 環境変数 PATH に C:\Program Files\play-1.2.4 を追加。
  4. コマンドプロンプトから play myapp と入力するとカレントディレクトリの myapp/ 以下に Play! の Web アプリが作られます。
  5. myapp ディレクトリに移動し play run を実行。ブラウザから http://localhost:9000 へアクセスするとスタートアップページが表示されます。

Eclipse プロジェクト化

  1. play eclipsify myapp で Eclipse プロジェクト用のメタファイルが生成されます。
  2. Eclipse 3.7 の場合は ${PLAY_HOME}/supports/eclipse/org.playframework.playclipse_0.7.0.jar を ${ECLIPSE_HOME}/dropins へコピーするとメニューから Controller や View の追加ができます。

Eclipse 以外の IDEide - 1.2.4 に載っています。

ステップ実行

Eclipse プラグインを導入するとデバッグ実行用のプロファイルが

モジュール追加

DB のマイグレーションなどはどうするのかと調べてみたら、gems のように追加モジュールとしてインストールするようでした。

play install migrate

利用可能なモジュールは Modules に載っています。