カテゴリ: Springの基本 更新日: 2025/12/10

application.properties と YAML の基本をやさしく解説!初心者向けSpring Boot設定ファイル入門

application.properties と YAML の基本
application.properties と YAML の基本

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

新人

「Spring Bootでアプリを作るときに、設定ファイルってよく出てきますよね?application.propertiesとか……。あれって何なんですか?」

先輩

「いいところに気がついたね。Spring Bootではapplication.propertiesapplication.ymlという設定ファイルを使って、アプリの設定をまとめて管理しているんだ。」

新人

「設定って、何を設定するんですか?どうやって書けばいいのかもわからなくて……。」

先輩

「まずは基本のapplication.propertiesから順番に見ていこう!」

1. Spring Bootの設定ファイルとは?

1. Spring Bootの設定ファイルとは?
1. Spring Bootの設定ファイルとは?

Spring Bootの設定ファイルは、アプリケーションの動作に必要な情報や、開発中に変更したい値をまとめて記述できる便利なファイルです。特に、環境ごとに設定を切り替えたいときなどに非常に役立ちます。

たとえば、Webサーバーのポート番号を変更したい場合や、文字コードの設定、データベース接続の情報などをこの設定ファイルに記述します。

Spring Bootでは主に以下の2つの形式で設定を書きます。

  • application.properties(プロパティ形式)
  • application.yml(YAML形式)

これらはSpring Bootが自動的に読み込んでくれるため、特別な設定なしですぐに使えるのが特徴です。この記事では、まずapplication.propertiesの基本的な使い方を見ていきましょう。

2. application.propertiesの基本的な使い方

2. application.propertiesの基本的な使い方
2. application.propertiesの基本的な使い方

application.propertiesファイルは、キーと値を「=(イコール)」でつなげて設定を書く形式です。ファイルはsrc/main/resourcesフォルダの中に作成されます。

Spring Bootでプロジェクトを作成した場合は、最初からこのフォルダが用意されているので、その中にapplication.propertiesファイルを置くだけでOKです。

たとえば、Webアプリのポート番号を変更するには、次のように記述します。


server.port=8081

この設定により、Tomcatサーバーが8081番ポートで起動するようになります。

では、もう少し実用的な設定例を見てみましょう。たとえば、HTMLの文字エンコーディングやテンプレートのキャッシュ設定などもapplication.propertiesに書くことができます。


spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=false

ここで設定しているUTF-8は、文字コードを指定していて、日本語を含むページでも文字化けしないようにするためのものです。また、cache=falseにすることで、テンプレートを変更した際に即座に反映されるようになります。

さらに、ログ出力のレベル設定などもこのファイルに書くことができます。


logging.level.org.springframework=INFO

この設定は、Spring関連のログを「INFOレベル」で出力するようにするものです。開発中はDEBUGにしたり、本番環境ではWARNERRORに変更することもあります。

実際にPleiadesでSpring Bootプロジェクトを作成した場合、以下の手順でapplication.propertiesを編集できます。

  1. Pleiadesを起動する
  2. 作成済みのSpring Bootプロジェクトを開く
  3. src/main/resourcesフォルダを開いて、application.propertiesを作成
  4. 必要な設定を入力
  5. 保存してアプリを実行(実行ボタンまたは右クリック → 実行)

そして、例えばポートを8081に変更した場合、実行結果は以下のようになります。


Tomcat started on port(s): 8081 (http) with context path ''

このようにapplication.propertiesは、アプリ全体の振る舞いをコントロールする中心的な役割を果たします。非常にシンプルな形式なので、初心者でもすぐに慣れることができます。

次回は、同じ設定ファイルであるapplication.ymlの使い方について詳しく見ていきましょう。

3. application.ymlとは?(YAML形式の設定ファイル)

3. application.ymlとは?(YAML形式の設定ファイル)
3. application.ymlとは?(YAML形式の設定ファイル)

application.ymlは、Spring Bootで使えるもう一つの設定ファイル形式で、YAML(ヤムル)形式で記述します。YAML形式は、見た目がシンプルで階層構造がわかりやすく、複数の設定をまとめて管理しやすいのが特徴です。

ファイルの保存場所はapplication.propertiesと同じく、src/main/resourcesフォルダです。YAMLはインデントで構造を表すため、スペースの使い方に注意する必要があります。特に、タブではなく半角スペースを使うようにしましょう。

以下は、application.propertiesで設定した内容を、application.ymlで書き直した例です。


server:
  port: 8081

spring:
  thymeleaf:
    encoding: UTF-8
    cache: false

logging:
  level:
    org:
      springframework: INFO

このように、YAML形式では階層をインデントで表現することで、設定の構造が一目でわかるようになります。設定の内容は同じでも、application.propertiesよりも読みやすいと感じる人も多いです。

4. application.propertiesとapplication.ymlの違い

4. application.propertiesとapplication.ymlの違い
4. application.propertiesとapplication.ymlの違い

application.propertiesapplication.ymlは、どちらもSpring Bootの設定ファイルとして使えますが、書き方や特徴にはいくつか違いがあります。以下に、それぞれの違いをまとめます。

  • 書式の違い: application.propertiesは「キー=値」で書く形式、application.ymlはインデントで階層を表す形式です。
  • 読みやすさ: 階層構造の設定が多い場合は、application.ymlの方が見やすくなります。
  • 注意点: application.ymlはスペースやインデントのミスでエラーになりやすいため、初心者には少し難しく感じるかもしれません。
  • コメントの書き方: どちらもコメントは「#」で始めることができます。

実際に、同じ設定を2つの形式で比較してみましょう。

application.properties の場合

server.port=8081
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=false
logging.level.org.springframework=INFO
application.yml の場合

server:
  port: 8081

spring:
  thymeleaf:
    encoding: UTF-8
    cache: false

logging:
  level:
    org:
      springframework: INFO

このように、同じ内容でもapplication.ymlの方が視覚的にまとまりがあり、見やすいというメリットがあります。一方で、インデントミスでアプリが正しく動かなくなる可能性もあるため、注意が必要です。

5. どちらを使えばよいのか?初心者向けの選び方アドバイス

5. どちらを使えばよいのか?初心者向けの選び方アドバイス
5. どちらを使えばよいのか?初心者向けの選び方アドバイス

Spring Bootの設定ファイルとして、application.propertiesapplication.ymlのどちらを使うべきか迷う方も多いと思います。ここでは、初心者に向けた選び方のポイントを紹介します。

  • まずはapplication.propertiesがおすすめ: 記述がシンプルで、インデントエラーの心配が少ないため、初心者でも扱いやすいです。
  • 慣れてきたらapplication.ymlも使ってみよう: 複雑な構造の設定や、プロファイルごとの設定管理が必要になったときには、YAMLの方が便利です。
  • Pleiades環境ではどちらも使える: Pleiadesで作成したSpring Bootプロジェクトでも、どちらのファイル形式にも対応しています。自由に切り替えることができます。
  • 併用は避ける: 同時に両方を使うこともできますが、設定の重複や優先順位で混乱を招くことがあるため、最初のうちは片方に統一するのが安全です。

初心者のうちは、公式チュートリアルや解説記事でもよく使われているapplication.propertiesを使うのが無難です。記述ルールも簡単なので、すぐに慣れることができます。

ただし、将来的にプロジェクトが大きくなって、設定項目が増えてきた場合には、構造が明確にできるapplication.ymlへの移行を検討するのも良いでしょう。

どちらの形式にも長所と短所があるので、まずはそれぞれの違いを理解して、自分の用途や習熟度に応じて使い分けていくことが大切です。

6. 設定ファイルの書き方で気をつけるポイント

6. 設定ファイルの書き方で気をつけるポイント
6. 設定ファイルの書き方で気をつけるポイント

Spring Bootの設定ファイルを記述する際には、いくつかの注意点があります。特にapplication.ymlを使う場合は、インデントや記述ルールを間違えると、アプリケーションの起動時にエラーが発生することがあるため、初心者は慎重に取り扱う必要があります。

ここでは、「Spring Boot 設定ファイル 注意点」や「application.yml エラー対策」として、よくあるミスとその対処法をまとめます。

  • 半角スペースを使う: application.ymlではインデントにタブを使用しないようにしましょう。必ず半角スペースを使って階層を表現します。
  • インデントはそろえる: 同じ階層は同じ数のスペースでインデントする必要があります。ずれると認識されず、起動エラーの原因になります。
  • 特殊文字の扱い: 値にコロン:やシャープ#などを含める場合は、ダブルクォーテーション"で囲むようにしましょう。
  • 同じキーを重複しない: 同一ファイル内で同じキーを複数回設定すると、予期しない動作になる場合があります。
  • エラーが出たらymlを疑う: アプリが起動しないときは、まずapplication.ymlの記述ミスを疑い、application.propertiesで書き直して動作確認するのも一つの手です。

例えば、次のようなインデントミスがあると、Spring Bootは起動に失敗します。


server:
port: 8081

これはportserverの下の階層であることを示していないため、正しくは次のように記述します。


server:
  port: 8081

このように、特にapplication.ymlは見た目がきれいな反面、細かなインデントミスが致命的になりやすいため、慣れるまでは慎重に書くようにしましょう。

7. 実行して動作を確認しよう

7. 実行して動作を確認しよう
7. 実行して動作を確認しよう

ここでは、実際にSpring Bootの設定ファイルを使って動作確認をしてみましょう。今回はapplication.propertiesでサーバーポートを変更し、簡単なコントローラーを作成して設定が反映されているかをチェックします。

まず、application.propertiesに以下のように記述します。


server.port=8085

次に、コントローラークラスを作成します。ここでは、@Controllerを使って、簡単なメッセージを表示する画面を用意します。


package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/")
    public String hello(Model model) {
        model.addAttribute("message", "Spring Bootの設定ファイルテスト中!");
        return "hello";
    }
}

続いて、src/main/resources/templatesフォルダ内にhello.htmlファイルを作成し、以下のように書きます。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>テスト画面</title>
</head>
<body>
    <h1>こんにちは!</h1>
    <p th:text="${message}">ここにメッセージが表示されます。</p>
</body>
</html>

プロジェクトをPleiadesで実行すると、http://localhost:8085/にアクセスしたとき、画面に「Spring Bootの設定ファイルテスト中!」というメッセージが表示されれば成功です。


Tomcat started on port(s): 8085 (http) with context path ''

このように、設定ファイルに書いた内容が反映されているかどうかは、アプリケーションの動作やログ出力で簡単に確認できます。

8. どちらの形式も覚えておくと便利

8. どちらの形式も覚えておくと便利
8. どちらの形式も覚えておくと便利

application.propertiesapplication.ymlは、どちらもSpring Bootの開発において欠かせない設定ファイルです。それぞれにメリット・デメリットがあるため、初心者のうちは使いやすいapplication.propertiesからスタートし、徐々にapplication.ymlにも挑戦していくのが理想です。

特にapplication.ymlを使う場合は、インデントミスなどによるエラーを防ぐため、書き方のルールをしっかりと覚えることが大切です。エディタの設定で「タブをスペースに変換」するようにしておくと、ミスを防ぎやすくなります。

また、Pleiades環境ではどちらの形式も問題なく動作するため、自分の書きやすさやチームの方針に合わせて柔軟に使い分けましょう。設定ファイルの使い方に慣れてくると、開発効率もぐっと上がります。

設定ファイルは地味な存在かもしれませんが、アプリケーションの安定動作に直結する重要な部分です。正しく使えるようになれば、Spring Bootのプロジェクトをより自由にコントロールできるようになります。

まとめ

まとめ
まとめ

application.properties と YAML の理解を深めるための総まとめ

この記事では、Spring Boot の開発で欠かせない設定ファイルである application.propertiesapplication.yml の役割や書き方について、基本から丁寧に学んできました。Spring Boot が設定ファイルを自動的に読み込んでくれる仕組みは、複雑な設定をコードに直接書かずに済むため、開発の柔軟性と管理のしやすさを大きく向上させます。

特に、ポート番号の変更、文字コードの設定、テンプレートエンジンの動作制御、ログレベルの変更など、アプリケーションの重要な挙動をこの設定ファイル一つで調整できる点は非常に大きなメリットです。設定内容をまとめて管理できることで、環境ごとの差異を明確にしやすく、テスト環境や本番環境を切り替える際にも非常に便利です。

また、単純な設定変更だけでなく、階層構造で設定を書ける YAML を使うことで、より見通しのよい設定ファイルを作成することができ、開発者同士で共有しやすい点も特徴です。それぞれの形式は表記方法が異なりますが、目的はどちらも「アプリケーションの動作を柔軟に管理する」ことであり、プロジェクトに応じて使い分けることができます。

設定ファイルの理解を深めるサンプルコード

ここでは、properties と YAML の両方を比較しながら理解を深めるための簡単なサンプルを整理します。同じ設定を二つの形式でどのように記述するのか確認しておくと、場面に応じた選択がしやすくなります。


# application.properties の例
server.port=9090
spring.thymeleaf.cache=false
logging.level.com.example=DEBUG

# application.yml の例
server:
  port: 9090

spring:
  thymeleaf:
    cache: false

logging:
  level:
    com.example: DEBUG

このように、properties は「キー=値」、YAML は「階層構造」で読みやすく整理できるという違いがあります。状況によってどちらの形式が適しているか判断しながら、プロジェクトに合わせて柔軟に選択していくことが大切です。

実務で活きる application.properties と YAML の活用ポイント

実務の現場では、環境によって設定値が異なるケースが非常に多くあります。開発環境ではログレベルを細かく設定し、本番環境では重要な情報だけを出力するようにするなど、設定ファイルの活用はアプリケーションの品質と安全性に直結します。

また、データベース接続情報や外部APIのURL、セキュリティ関連の項目など、頻繁に変更される可能性がある値はすべて設定ファイルで管理することで、コードの変更を最小限に抑えつつ柔軟に動作を調整できます。YAMLでは複数階層の設定も見やすく書けるため、大規模アプリケーションでは YAML が選ばれることも多くあります。

設定ファイルを活用してよりよいアプリケーション設計へ

Spring Boot の魅力のひとつは、設定ファイルを活用してアプリケーションの挙動を細かく制御できる点にあります。今回学んだ application.propertiesapplication.yml の使い方を理解することで、プロジェクトの可読性や保守性が格段に向上します。また、環境ごとの設定切り替えや運用時の調整も容易になり、アプリケーション開発における大きな武器となります。

今後は、@Value を使ったプロパティ読み込みや、@ConfigurationProperties による設定のバインドなど、さらに実践的な設定管理方法にも挑戦することで、より高度なアプリケーション設計が可能になります。設定を制することは開発を制することにもつながるため、今回の知識をしっかりと身につけておくことが大切です。

先生と生徒の振り返り会話

生徒:「properties と YAML の違いがよくわかりました!どちらも仕組みは同じでも、書き方に特徴がありますね。」

先生:「その通り。書き方の好みやプロジェクトの規模に応じて選べばいいんだよ。」

生徒:「設定ファイルでアプリの挙動が変わる仕組みが面白いです。今後もっと複雑な設定にも挑戦したいです。」

先生:「いい姿勢だね。次は YAML の階層構造を使った詳細な設定や、環境ごとの切り替えにも挑戦してみよう。」

生徒:「はい!設定ファイルの管理がしっかりできれば開発がもっとスムーズになりそうです。」

先生:「その意識が成長につながるよ。今回の基礎は、これからの開発でもずっと役に立つはずだよ。」

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

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

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

Spring Bootのapplication.propertiesとは何を設定するファイルですか?

Spring Bootのapplication.propertiesファイルは、ポート番号や文字コード、テンプレートのキャッシュ設定、ログ出力のレベルなど、アプリの動作に関する基本的な設定を記述するためのファイルです。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
New1
SpringのWeb開発(Spring MVC)
Spring MVCで @Size を使って文字列長を制限する方法|フォームバリデーションを初心者向けに解説
New2
SpringのWeb開発(Spring MVC)
Spring MVCの数値チェック:@Min / @Max で数値範囲を検証する方法を初心者向けに解説
New3
SpringのWeb開発(Spring MVC)
Spring MVCで使う @Valid と @NotNull の基礎(Spring Bootフォームチェックの基本)を初心者向けに解説
New4
Thymeleaf
Thymeleafの基本的な書き方を完全ガイド!初心者向けサンプル解説
人気記事
No.1
Java&Spring記事人気No1
Thymeleaf
Thymeleaf とは?初心者向けにThymeleafの基本を徹底解説
No.2
Java&Spring記事人気No2
Spring認証(Spring Security)
セッション管理の基本(@SessionAttributes)を完全解説!初心者でもわかるセッションの仕組み
No.3
Java&Spring記事人気No3
Springの基本
Spring Bootの環境変数の設定方法をやさしく解説!初心者向けapplication.propertiesの使い方
No.4
Java&Spring記事人気No4
SpringのDB操作
JPAの標準クエリメソッド(findById, findAll)を完全解説!初心者でもわかるデータ取得の基本
No.5
Java&Spring記事人気No5
Springの基本
Springの@Autowiredとは?依存性注入(DI)を初心者向けに解説
No.6
Java&Spring記事人気No6
SpringのAPI開発(REST & GraphQL)
REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)を初心者向けにわかりやすく解説!
No.7
Java&Spring記事人気No7
SpringのWeb開発(Spring MVC)
@Controller と @RestController の違いを完全解説!初心者向けSpring MVC入門
No.8
Java&Spring記事人気No8
SpringのAPI開発(REST & GraphQL)
REST APIのステータスコード一覧と適切な使い方