このエントリはPlay frameworkひとりアドベントカレンダーの16日目です。
おさらいがてらアプリを作っていきましょう。
テーマはisucon2です。
元ネタはこちら→ https://github.com/netmarkjp/isucon2
もっときれいな、いい実装方法はあるとおもいますが、 そういうのはえらいひとが指摘してくれるでしょうきっとね。
プロジェクトを作る
$ play new isucon2-play _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org The new application will be created in /Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play What is the application name? > isucon2-play Which template do you want to use for this new application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project > 2 OK, application isucon2-play is created. Have fun! $ cd isucon2-play/ $ play eclipsify [info] Loading project definition from /Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/project [info] Set current project to isucon2-play (in build file:/Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/) [info] About to create Eclipse project files for your project(s). [info] Updating {file:/Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/}isucon2-play... [info] Done updating. [info] Compiling 4 Scala sources and 2 Java sources to /Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/target/scala-2.9.1/classes... [info] Successfully created Eclipse project files for project(s): [info] isucon2-play
とりあえず画面を出す
とりあえず画面を表示してヤル気を高めましょう。
$ play [info] Loading project definition from /Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/project [info] Set current project to isucon2-play (in build file:/Users/baba/Documents/project/PlayframeworkSOLOAdventCalendar2012/isucon2-play/) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console. [isucon2-play] $ run --- (Running the application from SBT, auto-reloading is enabled) --- [info] play - Listening for HTTP on port 9000... (Server started, use Ctrl+D to stop and go back to the console...)
http://localhost:9000/
にアクセスして何がしか表示されればokです。
Eclipseに取り込む
Eclipseを起動したら、メニューから
File > Import > Existing Projects into Workspace > Select root directory
でプロジェクトのディレクトリを指定しましょう。
できましたね。
忘れずに /target/classes_managed
をbuild pathに追加しておいてください。
いらんものを消す
今回は出力が規定されているので、viewまわりはisucon2オリジナルアプリそのまま使います。
だから下記viewまわりのは使わないので、ざくっと消しましょう。いらんいらん。
/app/views/*.scala.html
/public/*
Controllerを書く
それではControllerから書いていきましょう。
- routingを
/conf/routes
に書く - Controllerを
/app/controllers/Application.java
に書く
という順番です。
/conf/routes
もともとこれが書いてあるので、そのまま使いましょ。
GET / controllers.Application.index()
Controller
とりあえずTODO書いておけばいいです。
というかTODO書いておいたほうがいいです。
package controllers; import play.mvc.Controller; import play.mvc.Result; public class Application extends Controller { public static Result index() { return TODO; } }
これでとりあえずエラーにならず画面出ます!
作成途中だからって、エラーになると萎えるもんね。
http://localhost:9000/
はこんなかんじ。
さて。準備ができたところで、明日から中身を作っていきましょう。