ふりぶろぐ
Web Engineer's Blog
Java

【入門】Play Framework 2.7(Java)で環境構築!【IntelliJ IDEA】

Play Framework

※2019/12/31 内容更新しました!

簡単に環境構築できるのでやってみましょう!

環境
  • play Framework:2.7.3
  • OS : macOS Catalina バージョン 10.15
  • Java : 1.8.0_131
  • sbt : 0.13.16
  • IDE : IntelliJ IDEA Ultimate 2019.2

普段、JavaでPlay Frameworkを使用しているのですが、2.7系は使ったことがないので使ってみたいと思います。
とりあえず今回は環境構築と触りの部分だけ!

Play Frameworkは2.3系から使っていますが、バージョンによって書き方が全然違うイメージ。
アップデートによって大幅に記法変えますよね。
ついていくのが大変…。

2.7系ではどのような変化があったか確認の意味も込めて使ってみたいと思います。

環境構築はsbtで簡単にできるはず!

必要なものをインストール

Javaとsbtをインストールします。

javaコマンドとsbtコマンドが通るようになれば良いと思います!

Javaのインストール

JavaはOracleのダウンロードページからダウンロードしてください。

ダウンロードにはOracleプロファイルへのサインインが必要です。
アカウントを保持していない方は登録を行ってください。

インストーラの手順通りにやればインストールされるはず!

sbtのインストール

sbtはhomebrewで簡単インストール!

$ brew install sbt

これだけ!

プロジェクトの生成

このサンプルをそのままベースに使っても良いと思うけど、今回はコマンドでプロジェクトを生成してみます。

任意のディレクトリで以下のコマンドを実行します。

namesampleorganizationは入力しないでEnter。

organizationの入力は任意です。

$ sbt new playframework/play-java-seed.g8
[info] Loading global plugins from /Users/noda/.sbt/0.13/plugins
[info] Set current project to documents (in build file:/Users/noda/Documents/)
This template generates a Play Java project
name [play-java-seed]: sample
organization [com.example]:
Template applied in ./sample

主要なファイルのディレクトリ構成はこんな感じ。

 sample
 ├── app
 │   ├── controllers
 │   │   └── HomeController.java
 │   └── views
 │       ├── index.scala.html
 │       └── main.scala.html
 ├── build.sbt
 ├── conf
 │   ├── application.conf
 │   ├── logback.xml
 │   └── routes
 ├── public
 │   ├── images
 │   │   └── favicon.png
 │   ├── javascripts
 │   │   └── main.js
 │   └── stylesheets
 │       └── main.css
 └── test
     └── controllers
         └── HomeControllerTest.java

sampleと同じ階層にtargetというディレクトリもできたけど不要な気がする。

おそらくこれが最小構成ですね。

プロジェクトの読み込み

IntelliJでプロジェクトを読み込みます。

「Import Project」から、先ほど生成したディレクトリのbuild.sbtを選択します。

JDK選択してOKでプロジェクトを読み込んでくれます。

アプリケーションの起動

IntelliJから起動してみます。

画面右上の「Add Configurations」をクリックするとRun/Debug Configurations画面が表示されます。

その後、左上の+ボタンから「Play 2 App」を選択。

設定はそのままで、名前をつけて保存します。

あとは画面右上の起動ボタンを押すだけ!

起動ボタンの右側にある虫みたいなボタンはデバッグモード!
超便利だから慣れてきたら使ってみると良いかも!

最後に表示確認!

無事に表示されました。
Welcome to Play!と表示されたらOKです!

ちょっとだけコードをいじってみる

起動するだけでは物足りない気がするので、少しコードを修正してみます。

controllerからviewにパラメータを渡す

シンプルに時間を渡して表示します。

package controllers;

import play.mvc.*;

import java.util.Date;

/**
 * This controller contains an action to handle HTTP requests
 * to the application's home page.
 */
public class HomeController extends Controller {

    /**
     * An action that renders an HTML page with a welcome message.
     * The configuration in the <code>routes</code> file means that
     * this method will be called when the application receives a
     * <code>GET</code> request with a path of <code>/</code>.
     */
    public Result index() {
        return ok(views.html.index.render(new Date()));
    }

}
@(date: Date)

@main("Welcome to Play") {
  <h1>Welcome to Play!</h1>
  <p>@date</p>
}

controllerはrender()部分でnew Date()を渡してあげてるだけですね。

それをviewの@(date: Date)で受け取ります。

そしてpタグを使って、受け取った値をそのまま表示しています。

  1. controllerのrender()部分でnew Date()を渡す
  2. viewの@(date: Date)で受け取る
  3. pタグで表示!

するとこんな感じ。

まとめ

Play Framework2.7を使って環境構築をしてみました。

コマンド1つで簡単に生成できるので良いですね!

IntelliJでの読み込みや起動も簡単でした。
IntelliJは超おすすめ!
無料版でも十分使えるので使ってみてください!

今後はTwitter APIを使って何か作れたらと考えています。

ABOUT ME
りーふ
たまにブログを書いてるWebエンジニア。 サーバーサイドメインでインフラとフロントエンドもたまにやります。 Javaが得意。 Play Frameworkが好き。 本業は迷惑をかけない程度に手を抜くスタイル。 意識高い系は苦手。