カテゴリ: Play Framework 更新日: 2026/02/08

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の構造を理解しながら開発スキルを身につけられます。

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

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Play Frameworkのディレクトリ構成にある「app」フォルダには何を保存すれば良いですか?

Play Frameworkの「app」ディレクトリは、Webアプリケーションの心臓部となるソースコードを配置する非常に重要な場所です。具体的には、MVCアーキテクチャに基づいた「controllers(コントローラ)」「models(モデル)」「views(ビュー)」という3つの主要なサブディレクトリが含まれています。JavaやScalaで記述されたビジネスロジックや、画面表示のためのテンプレートエンジンであるTwirl(トワール)のファイルなど、動的な処理を行うプログラムコードはすべてこのappフォルダの中で管理することになります。初心者はまず、このディレクトリ内の構成を把握することがPlay Framework習得の第一歩となります。
カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkのフォーム処理完全ガイド!メールアドレス・電話番号の形式チェック
New2
Jakarta EE
Jakarta EE JSFカスタムコンポーネントとは?初心者向けに基礎から徹底解説【Jakarta Faces・Webアプリ開発】
New3
Play Framework
Play Frameworkのフォーム処理を完全ガイド!文字数制限と正規表現バリデーション
New4
Jakarta EE
Jakarta EEのJSFマネージドBean入門!Jakarta Facesで学ぶ基本と役割を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta サーブレットのdoGetとdoPostの違いと使い分けを徹底解説!初心者でもわかるHTTPリクエスト処理
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkで学ぶ単純なフォーム作成方法!初心者でもわかる名前・メールアドレス入力
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.4
Java&Spring記事人気No4
Play Framework
Play FrameworkのUI設計を最適化!Twirlテンプレートのベストプラクティス
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkのデータバインディングを完全解説!初心者でもわかるフォーム入力と自動変換の仕組み
No.6
Java&Spring記事人気No6
Play Framework
Play FrameworkのForm APIを完全解説!初心者でもわかるフォーム処理の流れ
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkのフォーム処理を完全ガイド!文字数制限と正規表現バリデーション