Spring Bootのapplication.ymlとapplication.propertiesの使い方を完全解説!初心者にもわかる設定ファイルの基本と実践活用
生徒
「Spring Bootの設定ファイルって、application.ymlとかapplication.propertiesがありますけど、どうやって使い分ければいいんですか?」
先生
「それはいい質問ですね。Spring Bootではアプリケーションの設定を外部ファイルで管理するのが基本です。application.ymlとapplication.propertiesはどちらもそのためのファイルなんですよ。」
生徒
「どっちを使えばいいとか、書き方に違いはあるんですか?」
先生
「それでは、基本から実際の開発現場で役立つポイントまで、詳しく見ていきましょう!」
1. Spring Bootの設定ファイルとは何か?
Spring Bootでは、アプリケーションの挙動を設定するために、設定ファイルを使用します。最もよく使われるファイルが、application.propertiesとapplication.ymlです。
これらの設定ファイルは、データベース接続情報やサーバーポート、ロギング設定など、さまざまなプロパティを記述するために使われます。
2. application.propertiesの基本的な書き方
application.propertiesは、シンプルなキーバリュー形式で記述します。初学者にもわかりやすく、Javaのプロパティファイルと同じ書き方です。
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
logging.level.org.springframework=DEBUG
キーと値の間は=または:で区切りますが、どちらでも動作します。
3. application.ymlの基本的な書き方
application.ymlは、YAML形式で記述されるため、階層構造を持たせることができ、視認性が高いのが特徴です。
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: secret
logging:
level:
org.springframework: DEBUG
インデントはスペース2つ以上で揃えましょう。タブは使用しないよう注意が必要です。
4. どちらを使うべき?propertiesとymlの選び方
初心者にはapplication.propertiesの方が取り掛かりやすいですが、設定が増えてくるとapplication.ymlの方が構造的に管理しやすくなります。
- 設定が少ない場合 →
application.properties - 複雑な階層構造 →
application.yml - チーム開発で可読性重視 →
application.yml
5. Spring Bootのプロファイル設定(dev・test・prod)
本番環境・開発環境・テスト環境などで設定を分けたいときには、Spring Bootの「プロファイル機能」を使います。
まず、アクティブなプロファイルを設定します:
spring.profiles.active=dev
そして、それぞれのプロファイル用ファイルを作成します:
application-dev.ymlapplication-test.ymlapplication-prod.yml
これにより、環境ごとの設定を明確に分離して管理できます。
6. プロファイル毎の設定の具体例
# application-dev.yml
server:
port: 8081
spring:
datasource:
url: jdbc:h2:mem:testdb
username: sa
password:
# application-prod.yml
server:
port: 80
spring:
datasource:
url: jdbc:mysql://prod-db:3306/proddb
username: prod_user
password: prod_pass
このように、本番と開発で接続先やポート番号を分けることで、安全性と効率性を両立できます。
7. 外部ファイルで設定を分離するテクニック
セキュリティの観点から、パスワードなどは環境変数や外部ファイルに分けることもできます。
たとえば、コマンドラインで以下のように起動します:
java -jar app.jar --spring.config.location=classpath:/application.yml,file:/etc/config/
こうすることで、アプリ本体とは別に設定を安全に管理できます。
8. よくあるエラーとその対策
Spring Bootの設定ファイルで初心者がつまずきやすいポイントを紹介します。
- インデントエラー:YAML形式ではインデントが命です。必ずスペースで揃えること。
- キーのスペルミス:特に
spring.datasource.urlなど、正確なキー名を確認しましょう。 - プロファイルが有効になっていない:
spring.profiles.activeの設定漏れに注意。
9. Spring Boot 3系での変更点と注意事項
Spring Boot 3以降では一部プロパティの仕様が変更されており、特にセキュリティやマイグレーションに関する項目で影響を受ける場合があります。
- 一部のデフォルト値が変更
- 非推奨のプロパティが削除
- 構成がより厳格にチェックされる
設定を記述する際は、公式のプロパティ一覧ドキュメントで確認するのがベストです。
10. 設定ファイルのベストプラクティスまとめ
- 基本的な設定は
application.ymlに集約 - 環境ごとの違いはプロファイル分割
- 機密情報は外部ファイルや環境変数で管理
- 設定は必ずGitでバージョン管理
- 設定内容にはコメントをつけてチーム内共有を促進
Spring FrameworkやThymeleafを使った Webアプリ開発の全体像をやさしく理解したい人には、 この入門書が定番です。
Spring Framework超入門をAmazonで見る※ Amazon広告リンク