カテゴリ: 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
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.5
Java&Spring記事人気No5
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.6
Java&Spring記事人気No6
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本