バックエンド

【Java】Play Framework 2.7で環境構築!【IntelliJ IDEA】

play-framework-environment
野田竣介

今回はこのような質問をいただきました。

Play Frameworkの使い方教えて!

Play FrameworkはJavaの代表的なフレームワークの1つですね。

そこで今回はこちらの質問について解説していきます!

2019年に書いた内容なので、かなり情報古いです!

環境
  • 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とsbtをインストールします。

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

Javaのインストール

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

ダウンロードにはOracleプロファイルへのサインインが必要です。

アカウントを保持していない方は登録を行ってください。

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

sbtのインストール

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

homebrewはMac限定です。

$ brew install sbt

これだけ!

プロジェクトの生成しよう!

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

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

nameはsample、organizationは入力しないで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から起動してみます。

Run/Debug Configurations画面

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

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

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

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

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

最後に表示確認!

http://localhost:9000にアクセスしてみます。

Welcome to Play!

無事に表示されました!

「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タグで表示!

するとこんな感じ。

Welcome to Play! and Timestamp

時間も表示されましたね!

あとがき

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

IntelliJでの読み込みや起動も簡単でした。

IntelliJは無料版でも十分使えるので使ってみてください!

IntelliJはこちらからご購入いただくと割引されます!

記事URLをコピーしました