カテゴリ: Spring 更新日: 2026/01/06

Spring Bootのapplication.ymlとプロファイルの使い方入門!環境ごとの設定をわかりやすく解説

Spring Bootのapplication.yml/properties入門:環境別プロファイルの設計
Spring Bootのapplication.yml/properties入門:環境別プロファイルの設計

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

生徒

「Spring Bootで開発してるんですが、application.ymlやapplication.propertiesってどうやって使い分ければいいんですか?」

先生

「application.ymlやapplication.propertiesは、Spring Bootで設定値を管理するためのファイルですね。環境ごとに設定を切り替えたいときにも使えますよ。」

生徒

「環境ごとっていうと、本番とかテストとかですか?」

先生

「そうです!それでは、Spring Bootで環境別に設定を切り替える方法を詳しく見ていきましょう!」

1. Spring Bootにおける設定ファイルの基本

1. Spring Bootにおける設定ファイルの基本
1. Spring Bootにおける設定ファイルの基本

Spring Bootでは、アプリケーションの設定をapplication.propertiesまたはapplication.ymlというファイルに記述します。どちらの形式も使用できますが、ymlのほうが階層的な表現ができるため、見やすくておすすめです。

この設定ファイルは、データベースの接続情報やポート番号、ログレベルなど、さまざまな設定を一括で管理できます。

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

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

application.propertiesはシンプルなキーと値の形式です。例えば以下のように書きます:


server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb

一方で、application.ymlはインデントを使って階層を表現できます:


server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb

見た目の違いだけでなく、複数の設定をグループ化しやすいというメリットがあります。

3. 環境ごとの設定を分けるプロファイル機能とは?

3. 環境ごとの設定を分けるプロファイル機能とは?
3. 環境ごとの設定を分けるプロファイル機能とは?

開発環境・本番環境・テスト環境など、それぞれの環境に応じた設定を切り替えるには「プロファイル(profile)」という仕組みを使います。

プロファイルを使えば、以下のように環境ごとの設定ファイルを用意できます:


application-dev.yml
application-test.yml
application-prod.yml

そして、共通の設定はapplication.ymlにまとめておき、プロファイルごとに上書きする形で設定します。

4. Spring Bootでプロファイルを切り替える方法

4. Spring Bootでプロファイルを切り替える方法
4. Spring Bootでプロファイルを切り替える方法

Spring Bootでプロファイルを切り替えるには、以下のいずれかの方法でアクティブなプロファイルを指定します。

  • application.ymlで指定
  • コマンドライン引数
  • 環境変数

例:application.ymlに設定する場合


spring:
  profiles:
    active: dev

コマンドラインで起動する場合は以下のように指定します:


java -jar myapp.jar --spring.profiles.active=prod

5. application.ymlで複数プロファイルをまとめる書き方

5. application.ymlで複数プロファイルをまとめる書き方
5. application.ymlで複数プロファイルをまとめる書き方

1つのapplication.ymlファイル内で複数のプロファイルを使い分けることも可能です。---区切りで分けて書くことができます:


server:
  port: 8080

---

spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: jdbc:mysql://localhost:3306/devdb

---

spring:
  config:
    activate:
      on-profile: prod
  datasource:
    url: jdbc:mysql://prod.example.com:3306/proddb

このように書くことで、1つのファイル内で開発環境・本番環境の設定をまとめて管理できます。

6. よくあるミスと注意点

6. よくあるミスと注意点
6. よくあるミスと注意点
  • プロファイル名のスペルミスで設定が読み込まれない
  • インデントがずれていてYAML構文エラーになる
  • プロファイルを指定していないのに、プロファイル専用の設定しか書いていない

特にYAMLはインデントが厳格なので、スペースの数や整合性に気をつけましょう。

7. 複数プロファイルを同時に有効化する

7. 複数プロファイルを同時に有効化する
7. 複数プロファイルを同時に有効化する

複数のプロファイルを同時に有効にすることも可能です。例えば以下のようにカンマ区切りで指定します:


spring:
  profiles:
    active: dev,local

これにより、application-dev.ymlapplication-local.ymlの両方の設定が適用されます。

8. Spring Boot 3.xでの変更点

8. Spring Boot 3.xでの変更点
8. Spring Boot 3.xでの変更点

Spring Boot 3系では設定ファイルの読み込み順序やプロファイルの指定方法に若干の変更が加わっています。とくにspring.config.importの扱い方に注意が必要です。

最新バージョンを使用する場合は、公式ドキュメントでプロファイルと設定ファイルの取り扱いを確認しましょう。

まとめ

まとめ
まとめ

Spring Bootにおけるapplication.ymlとプロファイル設定は、開発環境や本番環境など複数の状況で異なる値を柔軟に扱うための重要な要素です。とくに、環境ごとにデータベース接続先やログレベル、ポート番号などを切り替える場合、application.ymlに共通設定を書き、application-dev.ymlやapplication-prod.ymlのように分割された設定ファイルで上書きする方法は、構成管理の見通しを大きく向上させます。さらに、YAML形式の階層構造を活かすことで、設定内容の関係性をわかりやすく整理でき、開発者同士の共有にも役立ちます。スペースの数やインデントの揺れによってYAMLはエラーが発生しやすいため、細かい記述ルールに注意することが大切です。また、プロファイル機能を組み合わせれば、開発環境と本番環境で別々のリソースを読み込んだり、多段階の設定を組み合わせたりすることが容易になり、Spring Bootが提供する柔軟性の高さを存分に活かすことができます。 下記のようなサンプル構成を使うことで、環境別の設定管理がより直感的になります。

サンプルプログラム:環境ごとの設定管理


spring:
  profiles:
    active: dev

server:
  port: 8080

---

spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: jdbc:mysql://localhost:3306/devdb

---

spring:
  config:
    activate:
      on-profile: prod
  datasource:
    url: jdbc:mysql://prod.example.com:3306/proddb

このように、複数のプロファイルを組み合わせることで、アプリケーションが稼働する場面に応じた最適な設定を切り替えることができます。たとえば、検証環境ではログレベルを詳細にし、本番環境では余計なログを出さないように抑えるなど、品質向上にも大きく貢献します。さらに、Spring Boot 3.xでは設定読み込み順序の変更やspring.config.importの扱いなどが更新されているため、常に最新のガイドラインを確認しながら記述することが重要です。設定ファイルを丁寧に整理することは、アプリケーション全体の安定性や保守性を高める基礎となり、長期的な開発効率にも大きなメリットをもたらします。日々の開発の中で設定ファイルを見直し、環境ごとの動作を意識した構成を整えることで、Spring Bootの持つ環境分離の強さを最大限活用できるようになります。

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

生徒

「今日の内容で、application.ymlとプロファイルを使えば環境ごとの設定を簡単に切り替えられるってわかりました!」

先生

「そうですね。開発環境、テスト、本番など、それぞれに合わせた設定を安全に管理できます。」

生徒

「インデントのずれでエラーが出るっていうのも意外でした。YAMLって繊細なんですね。」

先生

「ええ、YAMLはスペースの数がとても重要です。ですが、それさえ気をつければ階層構造が理解しやすく、とても使いやすい形式ですよ。」

生徒

「プロファイルごとにデータベースやログ設定を切り替えられるのは便利ですね!これなら本番に間違った接続先でデプロイしちゃう事故も減らせそうです。」

先生

「その通りです。適切に設定ファイルを管理することは、安全で安定した運用にも直結しますよ。」

生徒

「複数プロファイルを同時に使えるのも面白いですね。ローカル用にdevとlocalを組み合わせたり、いろいろ応用できそうです!」

先生

「その柔軟性こそがSpring Bootの良さです。環境ごとの動作を意識した設計を続ければ、ますます高品質な開発ができるようになりますよ。」

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

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

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

Spring Bootでapplication.ymlとapplication.propertiesの違いは何ですか?

Spring Bootでは設定ファイルとしてapplication.ymlとapplication.propertiesのどちらも使用できますが、application.ymlは階層的に記述できる点が特徴です。見やすさと構造化のしやすさから、application.ymlのほうが複雑な設定に適しています。

Springの学習を効率化したい方へ

この記事の内容をもっと深く知るには、以下の入門書が最適です。

Spring Framework超入門をAmazonで見る
カテゴリの一覧へ
新着記事
New1
Java
Javaのラムダ式で注意したい変数キャプチャの落とし穴とは?代入と変数名のベストプラクティス解説
更新記事
New2
Spring
Springの@GetMappingアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.5
Java&Spring記事人気No5
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.6
Java&Spring記事人気No6
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説