このエントリは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/ はこんなかんじ。
さて。準備ができたところで、明日から中身を作っていきましょう。

