application.properties と YAML の基本を初心者向けにわかりやすく解説
新人
「Spring Bootを勉強していると、application.propertiesとかYAMLってよく出てきますが、何をするものなんですか?」
先輩
「Spring Bootでは、アプリケーションの設定をまとめて管理するために設定ファイルを使います。その代表がapplication.propertiesとYAMLです。」
新人
「Javaのコードを書かなくても設定できるって聞いたんですが、本当ですか?」
先輩
「その通りです。設定ファイルを使うことで、Spring Bootの動きを柔軟に変更できます。基本から見ていきましょう。」
1. application.properties と YAML とは何か
Spring Bootでは、アプリケーションの動作を制御するために application.propertiesやYAML設定を使用します。 これらは、サーバ設定や画面表示、動作条件などをまとめて管理するための設定ファイルです。
application.propertiesは「設定名=値」という形式で記述します。 非常にシンプルな構造のため、Spring Boot初心者でも理解しやすいのが特徴です。
server.port=8080
spring.thymeleaf.cache=false
一方、YAML設定は階層構造で記述できるため、 設定項目が増えても整理しやすいというメリットがあります。 application.ymlという名前で使用します。
server:
port: 8080
spring:
thymeleaf:
cache: false
2. Spring Boot における設定ファイルの重要性
Spring Bootでは、設定ファイルを中心にアプリケーションの動作が決まります。 application.propertiesやYAML設定を変更するだけで、 Javaコードを書き換えずに動作を調整できます。
例えば、Pleiadesで作成したSpring Bootプロジェクトでは、 最初からapplication.propertiesが用意されています。 ここに設定を書くだけで、サーバの動作や画面表示の挙動を変更できます。
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html
このように設定を外出しすることで、 Spring Boot設定の変更が簡単になり、 初心者でも安全に調整できるようになります。
3. なぜ設定ファイルが必要なのか
Javaコードの中に設定を書いてしまうと、 環境が変わるたびにコード修正が必要になります。 これは、開発効率や保守性の低下につながります。
application.propertiesやYAML設定を使うことで、 「処理はJavaコード」「設定は設定ファイル」と役割を分けられます。 この考え方は、Spring Boot開発においてとても重要です。
spring.profiles.active=dev
このような設定を使えば、開発用と本番用で設定を切り替えることも可能です。 設定ファイルを理解することは、Spring Bootを正しく使うための第一歩です。
4. application.properties の基本的な書き方
application.propertiesは、Spring Bootで最もよく使われる設定ファイルです。 PleiadesでSpring Bootプロジェクトを作成すると、 src/main/resources フォルダの中に最初から配置されています。 初心者の方は、まずこの場所を覚えることが大切です。
application.propertiesの基本的な書き方はとてもシンプルで、 「設定キー=設定値」という形で1行ずつ記述します。 この形式により、どの設定が何を意味しているのかを直感的に理解しやすくなっています。 Spring Boot設定を学び始めたばかりの方でも、 ファイルを開いてすぐに内容を把握できる点が大きな特徴です。
設定キーは、Spring Boot側であらかじめ決められている名前を使います。 そのため、スペルミスや記号の抜けがあると設定が正しく反映されません。 初心者のうちは、公式ドキュメントやサンプルを参考にしながら、 少しずつapplication.propertiesの書き方に慣れていくのがおすすめです。
server.port=8080
spring.application.name=sampleApp
上記のように、1行ごとに設定を書くことで、 アプリケーション全体の基本的な動作を制御できます。 application.propertiesの書き方を理解することは、 Spring Bootを使った開発の基礎力につながります。
5. よく使われる application.properties の設定例
application.propertiesには、実際の開発で頻繁に使われる設定が多く存在します。 ここでは、Spring MVCアプリケーションで特によく利用される設定例を紹介します。 どれも初心者が最初につまずきやすいポイントなので、 「どんな役割の設定なのか」を意識しながら確認してみてください。
まず代表的なのが、サーバのポート番号を指定する設定です。 Spring Bootでは、何も指定しない場合は8080番ポートが使われますが、 application.propertiesを編集することで簡単に変更できます。
server.port=8081
次に、画面表示に関する設定です。 @Controllerを使ったSpring MVCでは、 ビューのパスや拡張子をapplication.propertiesでまとめて指定できます。 これにより、Javaコード側をシンプルに保つことができます。
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html
このような設定を使うことで、 コントローラでは論理名だけを指定すればよくなります。 application.propertiesの設定例を理解しておくと、 Spring Boot設定の全体像が少しずつ見えてきます。
6. YAML(application.yml)とは何か
YAMLは、application.propertiesと同じ役割を持つ設定ファイル形式です。 ファイル名は application.yml とし、 application.propertiesと同じく src/main/resources フォルダに配置します。 Spring Bootでは、どちらか一方を選んで使用するのが一般的です。
YAMLの最大の特徴は、階層構造で設定を書ける点です。 application.propertiesでは「ドット」で表現していた関係性を、 YAMLではインデントを使って表現します。 そのため、設定項目が多くなっても見た目が整理されやすくなります。
初心者の方は、最初はapplication.propertiesの方が分かりやすいと感じるかもしれません。 しかし、設定が増えてくると、 YAMLの読みやすさや管理のしやすさが実感できるようになります。 application.ymlの基本を知っておくことは、 Spring Boot設定を理解するうえでとても重要です。
7. YAML の基本的な書き方と特徴
YAMLでは、「キーと値」をコロンで区切って記述します。 さらに、関連する設定をインデントでまとめることで、 階層構造を自然に表現できます。 この書き方によって、設定同士の関係性が一目で分かるようになります。
ただし、YAMLはインデントの数が非常に重要です。 スペースのずれがあると、設定が正しく読み込まれません。 初心者のうちは、インデントを揃えることを意識して書くようにしましょう。
server:
port: 8080
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .html
このようにYAMLでは、 application.propertiesでドット区切りだった設定を 視覚的に整理して記述できます。 application.ymlの基本的な書き方を理解しておくことで、 設定ファイル全体の見通しがよくなります。
application.propertiesとYAMLは、 どちらが優れているというものではありません。 プロジェクトの規模やチームの方針に合わせて選ぶことが大切です。 まずは両方の基本を理解し、 Spring Boot設定に自信を持てるようになることを目指しましょう。
8. application.properties と YAML の使い分け
Spring Boot設定ファイルには、application.propertiesとapplication.ymlの二つの選択肢がありますが、 初心者の方が最初に悩みやすいのが「どちらを使えばよいのか」という点です。 結論から言うと、どちらを使ってもSpring Bootの動作に大きな違いはありません。 大切なのは、それぞれの特徴を理解したうえで使い分けることです。
application.propertiesは、一行ごとに設定を書く形式のため、 設定項目が少ないうちはとても見やすく、編集もしやすいです。 特にSpring Bootを学び始めたばかりの段階では、 「設定キー=値」という形が分かりやすく、理解の助けになります。 そのため、学習初期や小規模なアプリケーションでは、 application.propertiesを選ぶケースが多くなります。
一方で、YAML設定は階層構造を使って設定をまとめられるため、 設定項目が増えてきた場合に力を発揮します。 Spring Boot設定ファイルの内容が多くなり、 同じような設定キーが並ぶようになった場合は、 application.ymlの方が全体を把握しやすくなります。
実務では、チームの方針や既存プロジェクトに合わせて選択されることがほとんどです。 そのため、初心者のうちは「どちらか一方に決めなければならない」と考えず、 application.propertiesとYAMLの違いを理解することを優先しましょう。
9. 初心者がよく間違えやすいポイント
Spring Boot設定ファイルを扱う際、 初心者が特につまずきやすいポイントはいくつか共通しています。 ここでは、application.propertiesとYAML設定でよくある間違いと、 その対策について説明します。
application.propertiesで多いのが、設定キーのスペルミスです。 Spring Bootでは、設定キーが正確に一致しないと設定が反映されません。 そのため、アプリケーションが起動しない、設定が効いていないと感じた場合は、 まずキー名に誤りがないかを確認することが重要です。
server.prt=8080
上記のように、キー名が間違っていると設定は無視されます。 このようなトラブルを防ぐためには、 公式ドキュメントや補完機能を活用しながら入力することが効果的です。
YAMLで特に注意が必要なのは、インデントのずれです。 YAMLはインデントによって階層を表現するため、 スペースの数が合っていないとエラーの原因になります。 見た目では気付きにくい点なので、 インデントは必ず半角スペースで揃えるようにしましょう。
server:
port: 8080
このようにインデントがずれていると、 Spring Bootが正しく設定を読み込めません。 YAMLを使う場合は、書式のルールを常に意識することが大切です。
10. どちらを使うべきか迷ったときの考え方
application.propertiesとYAMLの違いを理解しても、 実際のプロジェクトでどちらを使うか迷うことは少なくありません。 そのような場合は、「今の自分が管理しやすいかどうか」を基準に考えるのがおすすめです。
Spring Bootを学習中で、設定内容もまだ少ない場合は、 application.propertiesを選ぶことで混乱を減らせます。 一行ずつ設定を確認できるため、 どの設定がどの動作に影響しているのかを把握しやすくなります。
反対に、設定項目が増えてきて、 application.propertiesが長くなりすぎたと感じた場合は、 YAMLへの切り替えを検討するとよいでしょう。 application.ymlを使うことで、 Spring Boot設定ファイル全体の構造を整理できます。
重要なのは、途中で形式を切り替えても問題ないという点です。 Spring Bootでは、どちらの形式も同じ役割を持つため、 状況に応じて柔軟に選択できます。 初心者の方は、まず一つの形式に慣れ、 必要に応じてもう一方を試してみる姿勢が大切です。