カテゴリ: Spring 更新日: 2026/02/09

application.propertiesとapplication.ymlの違いをやさしく解説!Spring Bootの設定ファイル入門

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

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

新人

「Spring Bootで設定ファイルを書くときに、application.propertiesとapplication.ymlのどっちを使えばいいのか迷ってしまいます。」

先輩

「その2つはどちらも設定ファイルだけど、書き方や特徴が違うんだよ。それぞれの違いと使い方を見ていこうか。」

新人

「お願いします!基本から教えてください。」

先輩

「まずはSpring Bootで設定ファイルがどんな役割を持っているのかから説明しよう!」

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

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

Spring Bootでは、アプリケーションの動作に関するさまざまな設定を外部ファイルで管理します。その代表的なファイルがapplication.propertiesapplication.ymlです。

これらの設定ファイルは、src/main/resourcesディレクトリに配置され、アプリケーションの起動時にSpring Bootが自動で読み込みます。


src/
└── main/
    └── resources/
        └── application.properties または application.yml

この設定ファイルには、ポート番号、データベース接続情報、テンプレートの場所など、アプリ全体に関わる情報を記述します。たとえば、Webアプリケーションのポート番号を変更したいとき、以下のように書きます。


server.port=8081

また、設定ファイルの内容は、@Controllerクラスや各種Springの機能と連携して動作します。Gradleで構成したPleiades環境のSpring Bootプロジェクトでも、必ずこのファイルが重要な役割を果たします。

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

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

application.propertiesは、キーバリュー形式で設定を記述するファイルです。1行に1つの設定を記述し、「キー=値」の形式で書きます。

設定の記述例をいくつか見てみましょう。


# ポート番号の設定
server.port=8080

# テンプレートファイルのパス設定
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html

# ログレベルの設定
logging.level.org.springframework=INFO

このように、application.propertiesではコメントも#を使って記述できます。

記述がシンプルなので、初めてSpring Bootを使う初心者にとっては分かりやすく、読みやすいというメリットがあります。

ただし、設定が多くなってくると、ネスト(階層)の表現がしづらくなり、視認性が低下する場合もあります。たとえば、次のようなケースです。


spring.datasource.url=jdbc:mysql://localhost:3306/sampledb
spring.datasource.username=root
spring.datasource.password=pass123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

このように、同じspring.datasourceに関係する設定がバラバラに見えるため、設定項目が増えてくると管理が大変になることがあります。

この課題を解決する方法のひとつが、次のセクションで紹介するapplication.ymlの使用です。

3. application.ymlの基本的な書き方と使い方

3. application.ymlの基本的な書き方と使い方
3. application.ymlの基本的な書き方と使い方

application.ymlは、YAML形式で設定を書くためのファイルです。application.propertiesと同じく、Spring Bootでアプリケーションの設定を行うために使われます。

YAML(ヤムル)は、インデントで階層構造を表現できるため、複雑な設定をまとめて記述しやすいという特徴があります。ネストされた設定をグループ化して見やすく整理できるので、設定項目が増えたときにとても便利です。

たとえば、データベース接続の設定をapplication.ymlで書くと、以下のようになります。


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sampledb
    username: root
    password: pass123
    driver-class-name: com.mysql.cj.jdbc.Driver

このように、階層的に記述できるため、設定の構造が一目でわかりやすく、管理しやすくなります。

ただし、YAMLはインデントの数やスペースの使い方に厳しいため、記述ミスがあるとアプリケーションの起動時にエラーが出ることがあります。行頭にタブ文字を使うとエラーになるため、必ず半角スペースでインデントを行いましょう。

4. application.propertiesとの主な違い

4. application.propertiesとの主な違い
4. application.propertiesとの主な違い

application.propertiesapplication.ymlの最大の違いは、記法と構造の表現方法です。

propertiesファイルは、1行ごとにキー=値で記述するのに対して、ymlファイルはキー: 値を階層的に書くスタイルです。

たとえば、テンプレートのパスやポート番号を設定する場合の書き方は次のようになります。

application.propertiesの場合


server.port=8080
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html

application.ymlの場合


server:
  port: 8080

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .html

このように、ymlではインデントにより階層構造がはっきりと表現されます。一方、properties形式は単純ですが、階層の概念がないため、複数の設定が同じグループに属していることが視覚的にわかりにくくなります。

つまり、設定が少ないうちは.propertiesが読みやすく、設定が増えて複雑になってきたら.ymlの方が便利という使い分けができます。

5. 実際に同じ設定をそれぞれで書いて比較

5. 実際に同じ設定をそれぞれで書いて比較
5. 実際に同じ設定をそれぞれで書いて比較

ここでは、同じ内容の設定をapplication.propertiesapplication.ymlの両方で記述して、具体的に比較してみましょう。

例:サーバーポートとテンプレートパスを設定する

application.propertiesの記述例


server.port=8081
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html
logging.level.org.springframework=DEBUG

application.ymlの記述例


server:
  port: 8081

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .html

logging:
  level:
    org:
      springframework: DEBUG

このように、application.ymlは構造がはっきりしていて、同じグループの設定をまとめて記述できるのが強みです。

逆に、application.propertiesは設定の並び順によってグループが見えにくくなることがあるため、設定が多くなってくると保守性に影響が出ることもあります。

一方で、ymlは柔軟な構造を表現できる分、インデントのミスや構文エラーが発生しやすい点に注意が必要です。

どちらもSpring Bootではサポートされているので、プロジェクトの規模やチームの好みに合わせて使い分けると良いでしょう。

6. Spring Bootではどちらを使うべきか

6. Spring Bootではどちらを使うべきか
6. Spring Bootではどちらを使うべきか

Spring Boot 設定ファイル 選び方に悩んだときは、プロジェクトの特性やチームの状況に応じて判断するのがポイントです。

まず、設定項目が少ない小規模プロジェクトであれば、application.propertiesが向いています。理由は、記述がシンプルで誤記も少なく、初学者にとって扱いやすいためです。

一方、設定項目が多く、階層構造が複雑になる中〜大規模プロジェクトでは、application.ymlの方が適しています。YAML形式なら関連する設定をまとめて見やすく整理でき、保守性も高まります。

また、複数の環境(開発・本番など)で設定を切り替えるケースでも、yml形式の方が柔軟に対応できます。

社内で設定ファイルの記法を統一する方針がある場合は、それに従うのがベストです。ただし、どちらの形式でも同じ内容を記述できるため、最終的には「どちらがチーム全体で扱いやすいか」が重要な判断基準になります。

7. よくあるトラブルと注意点

7. よくあるトラブルと注意点
7. よくあるトラブルと注意点

application.ymlを使用する際に初心者がよくつまずくのが、インデントのミスです。YAMLは見た目の整っていないスペースに非常に敏感で、インデントが正しくないとSpring Bootの起動時にエラーになります。

以下は、インデントミスによるエラー例です。

誤ったyml記述


spring:
  mvc:
  view:
    prefix: /WEB-INF/views/
    suffix: .html

この例では、mvc:view:のインデントが同じになっており、正しい構造ではありません。

正しいyml記述


spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .html

このように、階層構造に合わせて半角スペースで正確にインデントする必要があります。タブではなく、必ずスペースを使いましょう。

また、ymlではコロン(:)のあとにスペースを入れないとエラーになる場合もあります。以下はスペースがない誤った例です。


server:
  port:8080  # 誤り:コロンのあとにスペースがない

上記のような記述は、構文エラーの原因になるため注意しましょう。

一方、application.propertiesでは「=」記号での記述となるため、構文ミスのリスクは比較的少ないです。ただし、行が多くなった場合にグルーピングができず、設定が見づらくなるというデメリットがあります。

つまり、application.ymlは柔軟な構造が魅力ですが、記述ミスによるエラー(yml エラー)が起きやすく、application.propertiesは記述がシンプルな一方で可読性に劣る場面もあるという特徴があります。

8. それぞれのメリット・デメリットの振り返り

8. それぞれのメリット・デメリットの振り返り
8. それぞれのメリット・デメリットの振り返り

ここまで、Spring Bootの設定ファイルとして使われるapplication.propertiesapplication.ymlの違いや使い方について解説してきました。最後に、それぞれの形式のメリット・デメリットを振り返ってみましょう。

application.propertiesのメリット

  • 記述がシンプルで、初心者にも扱いやすい
  • エラーが起きにくく、構文ミスが少ない
  • 1行ずつの設定なので視認性がある(少量の設定に限る)

application.propertiesのデメリット

  • 階層構造が表現できないため、大量の設定では見づらい
  • 同じグループの設定を視覚的にまとめづらい

application.ymlのメリット

  • 階層的に設定を整理でき、複雑な構成も見やすい
  • 関連する設定をグルーピングしてまとめやすい
  • 環境ごとの設定ファイル切り替えに柔軟に対応できる

application.ymlのデメリット

  • インデントやスペースの記述ミスによってエラーが起きやすい
  • 初心者には構文が少しわかりづらい

結論として、Spring Boot 設定ファイルの選び方は、「扱いやすさを優先するか、構造の明確さを重視するか」によって変わってきます。プロジェクトの規模やメンバーのスキルレベルに応じて最適な形式を選ぶことが、安定した開発につながります。

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

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

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

Spring Bootの設定ファイルには何を書くのですか?

Spring Bootの設定ファイルには、ポート番号、テンプレートのパス、データベース接続情報、ログの出力レベルなど、アプリケーション全体の挙動に関する情報を記述します。
コメント
コメント投稿は、ログインしてください

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

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
pom.xmlやbuild.gradleの意味を初心者向けに解説!Javaのビルドツール入門
Java Servletとは?初心者でもわかる仕組み・役割・ライフサイクルを完全解説
Javaのwhile文を完全ガイド!初心者でもわかる繰り返し処理の基本
application.propertiesとapplication.ymlの違いをやさしく解説!Spring Bootの設定ファイル入門
人気記事
No.1
Java&Spring記事人気No1
SQLのビュー(VIEW)を完全ガイド!初心者でもわかる仮想テーブルの使い方
No.2
Java&Spring記事人気No2
SQLのロック(LOCK)を完全ガイド!初心者でもわかるデータの整合性の守り方
No.3
Java&Spring記事人気No3
DB接続失敗やSQLエラーの表示と対策を完全解説!初心者でもわかるSpringのエラーハンドリング
No.4
Java&Spring記事人気No4
SQLのパーティション(PARTITION)を完全ガイド!初心者でもわかるデータの分割管理