カテゴリ: 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をクラウド環境で活用するメリットを徹底解説!初心者にもわかるクラウド時代のJavaフレームワーク
New2
Play Framework
Play Frameworkで学ぶHTTPリクエストとレスポンスの基本
New3
Play Framework
Play Frameworkで言語を自動判別!リクエスト言語の検出方法を徹底解説
New4
Play Framework
Play FrameworkでJSONリクエストを受け取りレスポンスを返す方法を完全解説!初心者でも理解できるAPI開発入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
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 サーブレットのHttpServletResponseを徹底解説!初心者でもわかる基本操作と使い方
No.6
Java&Spring記事人気No6
Jakarta EE
EclipseでJakarta EE開発環境を構築しよう!初心者向けステップバイステップ解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta サーブレットのdoGetとdoPostの違いと使い分けを徹底解説!初心者でもわかるHTTPリクエスト処理