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

Play Frameworkの標準ディレクトリ構成を完全理解!初心者でもわかるフォルダの役割と使い方

Play Frameworkの標準ディレクトリ構成を理解する
Play Frameworkの標準ディレクトリ構成を理解する

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

生徒

「先生、Play Frameworkのプロジェクトを作ると、いろいろなフォルダが自動でできてますけど、どれが何のためのフォルダなのか分かりません…。」

先生

「確かに最初はフォルダが多くて戸惑いますね。でも、Play Frameworkのディレクトリ構成にはちゃんと意味があるんです。どこに何を書くかが決まっているので、理解しておくと開発がとてもスムーズになりますよ。」

生徒

「なるほど!それじゃあ、フォルダごとの役割を順番に教えてください!」

先生

「もちろんです。それでは、Play Frameworkの標準ディレクトリ構成を一緒に見ていきましょう。」

1. Play Frameworkの標準ディレクトリ構成とは

1. Play Frameworkの標準ディレクトリ構成とは
1. Play Frameworkの標準ディレクトリ構成とは

Play Frameworkでは、プロジェクトを作成すると自動的にいくつかのフォルダや設定ファイルが生成されます。これらはアプリケーションの構造を整理するために決められたルールで構成されています。特に、MVC(Model-View-Controller)アーキテクチャに基づいて設計されている点が特徴です。

ここでいうMVCとは、アプリケーションを「モデル」「ビュー」「コントローラ」の3つの要素に分ける考え方で、Play Frameworkではこの仕組みを自然に使えるようにディレクトリ構成が整っています。

2. ディレクトリ全体の構成を見てみよう

2. ディレクトリ全体の構成を見てみよう
2. ディレクトリ全体の構成を見てみよう

実際にsbt new playframework/play-java-seed.g8コマンドでプロジェクトを作成すると、以下のようなディレクトリ構成になります。


my-first-play/
├── app/
│   ├── controllers/
│   ├── models/
│   └── views/
├── conf/
│   └── routes
├── public/
│   ├── images/
│   ├── javascripts/
│   └── stylesheets/
├── test/
├── project/
├── build.sbt
└── README.md

このフォルダ構成を理解しておくと、アプリをどのように構築すればいいのかがすぐにわかります。それぞれのフォルダには明確な役割があり、Play Frameworkの開発ではこれを守ることがとても大切です。

3. appディレクトリの役割

3. appディレクトリの役割
3. appディレクトリの役割

appフォルダは、Play Frameworkアプリケーションの中心となる部分です。ここには実際に動作するアプリケーションロジックが含まれています。

  • controllers: コントローラを配置します。ブラウザからのリクエストを受け取り、適切なレスポンスを返す部分です。
  • models: データベースとのやり取りや、ビジネスロジックを記述します。JavaクラスやORMを利用してデータ構造を定義する場所です。
  • views: HTMLテンプレート(Twirlファイル)を配置します。ここではユーザーに表示する画面を作成します。

このようにappフォルダの中にはMVCの「C」「M」「V」がすべて揃っているので、アプリケーションの中心的な役割を果たすことが分かります。

4. confディレクトリの役割

4. confディレクトリの役割
4. confディレクトリの役割

confフォルダには、アプリケーション全体の設定ファイルが含まれています。特に重要なのがroutesファイルです。

routesファイルでは、ユーザーがアクセスするURLと、どのコントローラのメソッドを呼び出すかを対応づけます。たとえば、次のように記述します。


GET     /          controllers.HomeController.index

この設定により、「/」というURLにアクセスしたときにHomeControllerクラスのindexメソッドが呼び出されます。Play Frameworkのルーティングはこのファイルで一元管理されるため、開発を進めるうえで非常に重要です。

5. publicディレクトリの役割

5. publicディレクトリの役割
5. publicディレクトリの役割

publicフォルダには、Webブラウザから直接アクセスできる静的ファイルを配置します。主にCSSファイル、JavaScriptファイル、画像ファイルなどを格納します。

  • images: サイトのロゴやバナーなどの画像ファイル。
  • javascripts: フロントエンドのJavaScriptコード。
  • stylesheets: CSSやスタイル関連のファイル。

これらのファイルは、アプリケーションのUIを整えるために使われます。Play Frameworkではこれらの静的ファイルを自動的に管理してくれるため、特別な設定をしなくてもブラウザで読み込むことができます。

6. projectディレクトリの役割

6. projectディレクトリの役割
6. projectディレクトリの役割

projectフォルダには、sbt関連の設定ファイルが入ります。例えば、プラグインの設定やビルドの詳細なカスタマイズを行う場合に編集します。

通常、初心者の段階ではこのフォルダを直接触ることはほとんどありませんが、大規模プロジェクトになるとビルドの最適化や依存関係の管理を行う際に重要になります。

7. build.sbtの役割

7. build.sbtの役割
7. build.sbtの役割

プロジェクトのルートにあるbuild.sbtファイルは、アプリケーション全体のビルド設定を定義するためのファイルです。ここにはライブラリの依存関係やPlay Frameworkのバージョン、アプリ名などを記述します。

たとえば、次のような内容になっています。


name := "my-first-play"
version := "1.0"
libraryDependencies += guice

このように、sbtがこのファイルを読み取り、必要なライブラリを自動的にダウンロードしてプロジェクトをビルドしてくれます。

8. testディレクトリの役割

8. testディレクトリの役割
8. testディレクトリの役割

testフォルダには、アプリケーションの単体テストや統合テストのコードを配置します。Play FrameworkではJUnitなどを利用して、コントローラやモデルの動作を確認するテストを記述できます。

開発初期ではテストを省略することもありますが、本格的な開発ではテストコードを用意しておくと、修正時の動作確認がスムーズになります。

9. README.mdの役割

9. README.mdの役割
9. README.mdの役割

README.mdファイルは、プロジェクトの概要を説明するためのドキュメントです。GitHubなどでプロジェクトを公開する際には、このファイルに使い方や環境構築手順などを記載しておくと、他の開発者にも親切です。

10. ディレクトリ構成を理解するメリット

10. ディレクトリ構成を理解するメリット
10. ディレクトリ構成を理解するメリット

Play Frameworkのディレクトリ構成をしっかり理解しておくと、次のようなメリットがあります。

  • どのファイルをどこに置くか迷わなくなる
  • チーム開発でコードの見通しがよくなる
  • 他の人が作ったPlayプロジェクトもすぐ理解できる

この構成は、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初心者向けコントローラ入門