どうも、デーコムの小野伸二ことシンジです。
今回は私が最も業務で使ってみたいフレームワークであるplayframeworkについてご紹介していきます。
みなさんはJavaのフレームワークは何を使っていますか?
JavaEE? Spring? Seasar2?など様々だと思いますが、なぜ今回playframeworkを選んだのか。
なぜplayframeworkなのか。
実際に自社で主に使っているSeasar2と比較すると、少なくとも2倍は高いと思います。
(実測値などはないので、あくまでも個人的な意見です)
なんといっても作ってて楽しい^^
そんなPlayframeworkの主な特徴は以下のとおり。
・独自の組み込みWebサーバ(Netty)を持っている。
・Java標準のWebアプリケーション仕様であるJavaEE(Servlet/JSP)を使っていない。
・Javaの拡張言語であるScalaでも動作可能。
・RESTfulでありステートレス、つまりセッションがない。全てクッキーを利用。
なんとなく理解してもらえればと思います。実際に使ってみないとわからないしね。
では早速、環境構築のほうに入っていきます。準備はいいですか?
環境をつくろう
準備するもの
・パソコン(Windows)※Macでもできますが今回はWindowsベースで説明します。
・Java6以上(予め、インストールしておいてください。)
以下のサイトからplayframeworkのバイナリをダウンロードする。
https://www.playframework.com/download#older-versions
環境構築
1.適当な場所に解凍する。ここではC:play直下に解凍する。
2.playの実行ファイルのパスを通す。
・コンピュータを右クリック→プロパティ→システムの詳細設定→環境変数
・環境変数のダイアログが開いたら、システム環境変数のPathに以下の内容を追加する。
C:playplay-2.2.5
3.コマンドプロンプトから以下のコマンドを実行し確認する。
play -help
以下のような内容が表示されれば、OK!
環境構築は以上です。簡単でしょ?
じゃあ、早速JavaでおなじみのHello worldでもやりましょうか!
Hello worldを表示してみよう
プロジェクトの作成
まずは、playframeworkのプロジェクトを作ります。
以下のコマンドを実行してください。
cd C:play play new hello
実行すると、いくつか質問されるので下記のように入力してみてください。
What is the application name? [hello] >[Enter] Which template do you want to use for this new application? >2[Enter]
これでプロジェクト作成は完了です。 動かしてみましょう。
cd hello play run
以下の内容が表示されたら、ブラウザからhttp://localhost:9000にアクセスしてみてください。
以下の画面が表示されれば、正常にアプリが動いている状態です。
まだ、1文字もプログラムしてません。 (まぁ、最近のフレームワークでは当然かもしれませんが。。。)
Hello worldの表示
せっかくなので、Hello worldを表示してみましょう!!
1.以下のファイルをテキストで開いてください。
C:playhelloappviewsindex.scala.html
2.次に、以下のように編集して保存してください。
【修正前】
@(message: String) @main("Welcome to Play") { @play20.welcome(message, style = "Java") }
【修正後】
@(message: String) @main("Welcome to Play") { Hello world }
3.先ほどのブラウザを更新してみてください。
Hello worldが表示されましたか?
ね?簡単でしょ?
アプリを動かすためのサーバの設定やアプリのデプロイも一切やってないです。最初に言ったようにplayframeworkには独自のAPサーバを持っているため、新たにAPサーバのアプリを用意してソースをデプロイしてとかっていう手間がないのです。
これでアプリを作れる準備はできました。
素敵なPlay lifeを。。。。っと待って!テキストエディタで開発するの?
せかっく生産性の高いフレームワークを使っているのに、テキストで開発なんて本末転倒ですね(汗
ちゃんとPlayframeworkと連携できるIDEはありますよ。
現時点で連携できるのは、以下の3つかな。
・Eclipse
・NetBeans
・IntelliJ IDEA
その中でも次回は、Eclipseとの連携についてご紹介していきます。
それでは、素敵なPlayライフを!