カテゴリ: Play Framework 更新日: 2025/11/13

Play Frameworkのディレクトリ構成を初心者向けに解説!サンプル付き

ディレクトリ構成を理解するためのサンプル解説
ディレクトリ構成を理解するためのサンプル解説

先生と生徒の会話形式で理解しよう

生徒

「Play Frameworkのプロジェクトを作ったけど、ディレクトリがたくさんあってよくわかりません。」

先生

「そうですね。Play FrameworkはMVCアーキテクチャに基づいているので、ディレクトリもそれに合わせて整理されています。」

生徒

「MVCって何ですか?」

先生

「MVCはModel(モデル)、View(ビュー)、Controller(コントローラ)の頭文字です。データ、画面、処理を分けて管理する設計方法です。」

生徒

「なるほど。ディレクトリはどのように分かれているんですか?」

先生

「サンプルを見ながら説明します。」

1. Play Frameworkの基本ディレクトリ構成

1. Play Frameworkの基本ディレクトリ構成
1. Play Frameworkの基本ディレクトリ構成

Play Frameworkのプロジェクトを作成すると、以下のようなディレクトリ構成になります。


my-play-app/
    app/            ← アプリケーションのソースコードを置く場所
        controllers/ ← コントローラを配置
        models/      ← データやビジネスロジックを配置
        views/       ← HTMLやTwirlテンプレートを配置
    conf/           ← 設定ファイルを配置
        application.conf  ← アプリ全体の設定
        routes            ← URLルーティング設定
    public/         ← CSS、JavaScript、画像などの静的ファイル
    test/           ← 単体テストや統合テスト
    build.sbt       ← sbtによるビルド設定

この構成を理解することで、どこに何を書くべきかが明確になります。例えば、画面表示のHTMLはviews、データベースとのやり取りはmodelsに書きます。

2. コントローラとビューの関係

2. コントローラとビューの関係
2. コントローラとビューの関係

コントローラは、ユーザーのリクエストを受け取り、適切なデータをモデルから取得してビューに渡す役割を持ちます。ビューは受け取ったデータを画面に表示します。


package controllers

import play.api.mvc._

class HomeController(cc: ControllerComponents) extends AbstractController(cc) {
    def index = Action { implicit request: Request[AnyContent] =>
        Ok(views.html.index("Hello, Play Framework!"))
    }
}

@("message": String)
<html>
  <head><title>Home</title></head>
  <body>
    <h1>@message</h1>
  </body>
</html>

この例では、HomeControllerindexアクションを呼び出し、ビューに文字列を渡して表示しています。

3. 設定ファイルの役割

3. 設定ファイルの役割
3. 設定ファイルの役割

Play Frameworkではconf/application.confでアプリケーション全体の設定を行い、conf/routesでURLとコントローラのマッピングを設定します。


# conf/routes
GET     /       controllers.HomeController.index
GET     /about  controllers.AboutController.index

このようにURLごとにどのコントローラのどのアクションを呼ぶかを決めます。これによりWebアプリケーションのルーティングが明確になります。

4. 公開リソースの管理

4. 公開リソースの管理
4. 公開リソースの管理

静的ファイル(CSS、JavaScript、画像など)はpublicフォルダに配置します。ブラウザから直接アクセスできるため、ビューのデザインや動きを制御する際に使用します。

5. テストディレクトリの使い方

5. テストディレクトリの使い方
5. テストディレクトリの使い方

テストコードはtestディレクトリに置きます。単体テスト、統合テストを記述することで、アプリケーションの動作を確認できます。テストを正しく書くことで、将来の変更に対しても安心して開発を進められます。

6. 初心者向けのアドバイス

6. 初心者向けのアドバイス
6. 初心者向けのアドバイス

初心者はまずappディレクトリのcontrollersviewsに触れて、簡単な画面表示を作ることから始めるとよいでしょう。その後、modelsconf/routesに取り組むことで、Play Frameworkの構造を理解しながら開発スキルを身につけられます。

ディレクトリの役割を把握すると、大規模プロジェクトでも迷わず開発でき、保守性も向上します。

カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門
New2
Jakarta EE
Jakarta EE JSPにおけるJSTLとスクリプトレットの違いと使い分けを初心者向けに徹底解説
New3
Play Framework
Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
New4
Play Framework
Play FrameworkとSpring Bootの違いを徹底比較!初心者でもわかるJavaフレームワーク入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門