カテゴリ: Spring 更新日: 2025/07/08

resourcesフォルダに置くべきファイルとは?Spring Boot初心者向けに完全解説

resourcesフォルダに置くべきファイルとは?
resourcesフォルダに置くべきファイルとは?

新人と先輩の会話形式で理解しよう

新人

「先輩、Spring Bootのプロジェクトでresourcesフォルダって何のためにあるんですか?」

先輩

「いい質問だね。resourcesフォルダは、Javaコードとは別にアプリケーションに必要な設定ファイルやHTML、CSSなどの静的リソースを配置するための特別な場所なんだ。」

新人

「へぇ〜、具体的にはどんなファイルを置くんですか?」

先輩

「それじゃあ、resourcesフォルダに置くべきファイルについて詳しく説明していこうか。」

1. resourcesフォルダとは何か?

1. resourcesフォルダとは何か?
1. resourcesフォルダとは何か?

resourcesフォルダの基本的な役割

Spring Bootのプロジェクトでは、Javaのコードとは別に、アプリケーションの設定ファイルやテンプレート、静的ファイルなどを配置する専用の場所としてsrc/main/resourcesフォルダが用意されています。

このresourcesフォルダに配置されたファイルは、Gradleのビルド時に自動的にコンパイル対象に含まれ、classpathに配置されるため、Springアプリケーションから簡単に読み込むことができます。

特に、application.propertiesstatictemplatesといったディレクトリをこの中に作成することで、Spring Bootの自動設定機能が正しく働くようになります。

Pleiades + Gradle環境でも共通

この仕組みは、MavenでもGradleでも共通しており、Pleiadesを使ってGradleプロジェクトを作成した場合でも、resourcesフォルダは必須の構成要素となります。

2. resourcesフォルダに配置されるファイルの種類と目的

2. resourcesフォルダに配置されるファイルの種類と目的
2. resourcesフォルダに配置されるファイルの種類と目的

構成例を見てみよう


src/
└── main/
    └── resources/
        ├── application.properties
        ├── static/
        │   ├── css/
        │   │   └── style.css
        │   └── images/
        │       └── logo.png
        ├── templates/
        │   └── home.html
        └── messages.properties

設定ファイル:application.properties / application.yml

application.propertiesapplication.ymlは、Spring Bootのアプリケーション全体の動作を制御する設定ファイルです。データベースの接続設定やサーバーポートの変更などを行う場合に使います。


server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/sampledb
spring.datasource.username=root
spring.datasource.password=password

静的リソース:staticディレクトリ

staticフォルダには、HTML、CSS、JavaScript、画像ファイルなど、Webブラウザに直接送信される静的なリソースを配置します。URLに直接アクセスできるのが特徴です。


<img src="/images/logo.png" alt="ロゴ画像">
<link rel="stylesheet" href="/css/style.css">

テンプレート:templatesディレクトリ

templatesフォルダには、Thymeleafなどのテンプレートエンジンで使用されるHTMLファイルを配置します。これらのテンプレートは、@Controllerを通して動的に生成されたデータとともにブラウザに送信されます。

国際化リソース:messages.properties

Springでは、画面に表示されるメッセージを外部ファイルにまとめることで、多言語対応を簡単に実現できます。このようなメッセージを記述するファイルがmessages.propertiesです。


greeting=こんにちは
farewell=さようなら

設定XMLやデータファイルも配置できる

Springの設定ファイルやXMLベースの定義ファイル、CSVやJSONなどのデータファイルもこのresourcesフォルダに配置することで、クラスパスから読み込むことができます。

resourcesフォルダに置かれたファイルの読み込み方法

Javaコードからresourcesフォルダにあるファイルを読み込む場合は、ClassPathResourceResourceLoaderなどを使ってアクセスします。


Resource resource = new ClassPathResource("sample-data.json");
InputStream inputStream = resource.getInputStream();

このように、resourcesフォルダはclasspathの一部として扱われ、アプリケーションから簡単に参照できます。

3. application.properties / application.ymlの使い分けと配置場所

3. application.properties / application.ymlの使い分けと配置場所
3. application.properties / application.ymlの使い分けと配置場所

どちらも使えるが、形式が違う

Spring Bootでは、設定ファイルとしてapplication.propertiesapplication.ymlのどちらも使えますが、それぞれの形式に違いがあります。

application.propertiesは「キー=値」形式で書くのに対して、application.ymlはインデントを使ってネスト構造を表現できます。

どちらを使うべきか

初心者にはapplication.propertiesのほうがシンプルで理解しやすくおすすめです。構成が複雑になってくると、application.ymlの方が見やすく管理しやすくなるため、中級者以上に適しています。

配置場所は必ずsrc/main/resources

どちらの形式でも、必ずsrc/main/resourcesフォルダの直下に配置する必要があります。これにより、Spring Bootの自動構成が設定ファイルを正しく読み取ることができます。

設定ファイルの配置例


src/
└── main/
    └── resources/
        └── application.properties

このようにresources直下に置くことが、Spring Bootのルールです。「application.properties 配置場所」で検索する人も多いので、正確な位置を理解しておくことが大切です。

4. staticやtemplatesとの違い(役割ごとの分離)

4. staticやtemplatesとの違い(役割ごとの分離)
4. staticやtemplatesとの違い(役割ごとの分離)

staticとtemplatesの違いとは?

staticフォルダとtemplatesフォルダは、どちらもresourcesフォルダの中にありますが、使い方と目的がまったく異なります

  • static:HTML、CSS、画像など、ブラウザから直接アクセスされるファイル
  • templates:Springの@Controller経由で処理されるテンプレートファイル(Thymeleafなど)

たとえば、static/css/style.csshttp://localhost:8080/css/style.cssのように直接アクセスできます。一方、templates/home.html@Controllerで指定されたビュー名により表示されます。

動的か静的かで分かれる

staticは動的処理が不要なリソース、templatesはSpringでデータを渡して表示したい場合に使います。


src/
└── main/
    └── resources/
        ├── static/
        │   ├── css/
        │   │   └── style.css
        │   └── images/
        │       └── logo.png
        └── templates/
            └── home.html

Spring Boot static templates 違いは、初心者にとって混乱しやすいポイントなので、構成や用途の違いをしっかり理解しておくことが重要です。

5. resourcesフォルダ内でのサブディレクトリの使い方

5. resourcesフォルダ内でのサブディレクトリの使い方
5. resourcesフォルダ内でのサブディレクトリの使い方

自由にサブディレクトリを作成可能

resourcesフォルダの中では、必要に応じて自由にサブディレクトリを作成できます。たとえば、jsonxmlconfigといった目的別にフォルダを分けることで、管理しやすくなります。

サブディレクトリの例


src/
└── main/
    └── resources/
        ├── config/
        │   └── mail-config.xml
        ├── data/
        │   └── sample.json
        └── messages.properties

このように整理しておくと、大規模なプロジェクトでもファイルの役割がすぐに分かるようになります。

読み込み時の注意点

Javaコードからサブディレクトリ内のファイルを読み込む場合は、パスを正確に指定する必要があります。


Resource resource = new ClassPathResource("data/sample.json");
InputStream inputStream = resource.getInputStream();

resourcesフォルダ内の階層構造を意識して、読み込み時のパスを設計することが大切です。

慣れたら構成を最適化しよう

初心者のうちはstatictemplatesだけでも十分ですが、慣れてきたらconfigassetsといったカスタムディレクトリを追加して、整理された構成にすることでメンテナンス性が向上します。

6. 外部設定ファイルやバンドルされたファイルの扱い方(メッセージ・バリデーションなど)

6. 外部設定ファイルやバンドルされたファイルの扱い方(メッセージ・バリデーションなど)
6. 外部設定ファイルやバンドルされたファイルの扱い方(メッセージ・バリデーションなど)

外部化されたメッセージファイルの活用

resourcesフォルダ内には、アプリケーションの国際化対応のために使用されるmessages.propertiesファイルを配置できます。

これはバリデーションエラーメッセージやラベル文言を外部化して、画面とロジックの分離を実現するものです。

バリデーション用メッセージの例


NotBlank.userForm.name=名前を入力してください
Size.userForm.name=名前は20文字以内で入力してください

こういったファイルは、Springのバリデーション処理やフォームのエラーメッセージに自然に連携されます。これにより、Javaコードを変更せずにメッセージだけを変更できます。

日本語ファイル名の注意点

messages_ja.propertiesのように、言語別のファイルを分けることで、多言語対応も可能になります。


src/
└── main/
    └── resources/
        ├── messages.properties
        └── messages_ja.properties

resources フォルダ 使い方のひとつとして、こうしたファイルの配置は非常に基本的かつ重要です。

7. Gradleでresources配下のファイルがビルドされる仕組み

7. Gradleでresources配下のファイルがビルドされる仕組み
7. Gradleでresources配下のファイルがビルドされる仕組み

Gradleはresourcesフォルダを自動で含める

Spring BootのGradleプロジェクトでは、src/main/resources内のファイルはビルド時に自動的にクラスパスに含まれるよう設定されています。

そのため、build.gradleに特別な設定を追加しなくても、application.propertiesやテンプレートなどが自動的にビルド対象になります。

ビルド後の出力先


build/
└── classes/
    └── java/
        └── main/
            └── application.properties

このように、Gradleではresourcesの中身をJavaクラスと同じように扱い、最終的な実行パッケージ(JAR)にバンドルします。

ファイルが含まれていないときの確認ポイント

まれにファイルがJARに含まれていない場合は、ファイルの拡張子やパスにミスがないか確認し、Gradleのクリーンビルドを試すと解決することがあります。

8. 初心者におすすめのresourcesフォルダ運用ルール

8. 初心者におすすめのresourcesフォルダ運用ルール
8. 初心者におすすめのresourcesフォルダ運用ルール

命名ルールを統一する

application.propertiesmessages.propertiesなどのファイル名は、複数人で開発する場合に混乱が起きないように、名前のルールを決めておくのがおすすめです。

たとえば、messages.propertiesでは機能ごとにファイルを分けることもできます。


src/
└── main/
    └── resources/
        ├── messages/
        │   ├── user.properties
        │   └── product.properties
        └── application.properties

コメントやサンプルを含めておく

設定ファイルやメッセージファイルには、初めて触る人のためにコメントを入れておくと、運用ルールが共有しやすくなります。


# サーバーポートの設定
server.port=8080

使用しないファイルは削除する

resourcesフォルダ内に古い設定ファイルや不要なデータが残っていると、誤って読み込まれることがあります。使わないファイルはビルド前に削除しておきましょう。

構成のテンプレートを用意しておく

プロジェクトを新規作成するときのために、resourcesフォルダの構成テンプレートを用意しておくと、スムーズに開発を始められます。


src/
└── main/
    └── resources/
        ├── application.properties
        ├── static/
        │   └── css/
        ├── templates/
        │   └── layout.html
        ├── messages/
        │   └── common.properties
        └── data/
            └── init.json

Spring Boot 設定ファイル 配置場所や、resources フォルダ 使い方で検索する初心者にも、このようなルールがあると安心して学習できます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
JDBCとは?Javaでデータベースを使うしくみを初心者向けに解説
Springと他のフレームワーク(StrutsやJSF)との違いを初心者向けにわかりやすく解説!
Springのモジュール構成(DI・AOP・MVCなど)を紹介
Javaの論理演算子(&&, ||, !)の使い方を学ぼう
人気記事
No.1
Java&Spring記事人気No1
単体テストと結合テストの違いを理解しよう
No.2
Java&Spring記事人気No2
Javaとは?初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
SQLのサブクエリを完全ガイド!入れ子クエリの使い方を初心者向け解説
No.4
Java&Spring記事人気No4
SQLのトリガー(TRIGGER)を完全ガイド!初心者でもわかる自動処理の仕組み