Spring Bootの設定ファイルとは?初心者向けにapplication.propertiesの基本項目を解説
新人
「Spring Bootで開発を始めたんですが、application.propertiesってどこにあって何を書くんですか?」
先輩
「Spring Bootの設定ファイルだね。ポート番号を変えたり、データベースの接続設定をしたり、いろんなことが書けるよ。」
新人
「なるほど……でも初心者の自分には少し難しくて、どう使えばいいのかイマイチ分かりません……」
先輩
「それじゃあ、application.propertiesの基本から、丁寧に解説していこう!」
1. Spring Bootの設定ファイルとは?
application.propertiesは、Spring Bootアプリケーションの設定を記述するためのファイルです。このファイルを使えば、ポート番号やデータベースの接続情報、ログの出力レベルなど、さまざまなアプリの挙動をコントロールできます。
Spring Bootの特徴のひとつが「設定の簡略化」です。従来のJavaプロジェクトではXMLファイルで煩雑な設定を行っていましたが、Spring Bootではapplication.propertiesやapplication.ymlという形式で簡単に記述できます。
設定ファイルはsrc/main/resourcesフォルダの中に配置します。PleiadesでGradleプロジェクトを作成すると、デフォルトでこの場所にapplication.propertiesを作ることができます。
src
└── main
└── resources
└── application.properties
このファイルに記述された情報は、アプリケーションの起動時にSpring Bootが自動的に読み込んでくれます。特に初心者が最初に設定することが多いのが、「サーバーポートの変更」です。
server.port=8081
このように記述するだけで、アプリケーションのポート番号を8080から8081に変更することができます。設定ファイルの変更だけで動作を変えられるのが、Spring Bootの便利なポイントです。
2. application.propertiesとapplication.ymlの違いと記述形式
Spring Bootでは、設定ファイルとしてapplication.propertiesとapplication.ymlのどちらも使うことができます。どちらも役割は同じですが、記述の形式が異なります。
まず、application.propertiesは次のように「キー=値」という形で1行ごとに設定を書いていきます。
server.port=8081
spring.application.name=demo-app
これに対してapplication.ymlはインデントとコロン:を使った階層構造で設定します。
server:
port: 8081
spring:
application:
name: demo-app
どちらを使うかはプロジェクトの方針によりますが、初心者にはapplication.propertiesの方が見やすくておすすめです。PleiadesでSpringプロジェクトを作成すると、最初からapplication.propertiesが使われていることが多いです。
注意点として、application.propertiesとapplication.ymlの両方を同時に使うことは基本的に避けるべきです。どちらか一方に統一しておかないと、設定の競合や予期しない動作の原因になります。
また、ファイルの位置も重要です。必ずsrc/main/resourcesに配置しないとSpring Bootは認識してくれません。うっかりsrc/main/javaに置いてしまうと、読み込まれないので注意が必要です。
さらに、Gradleプロジェクトではビルド時にresourcesフォルダの中身が正しく取り込まれているかも確認しましょう。Pleiadesのプロジェクト構成で、「build.gradle」ファイルを開き、resourcesの設定が有効になっているかをチェックすると安心です。
3. よく使う設定項目の例
Spring Bootでよく使うapplication.propertiesの設定項目には、ポート番号やコンテキストパス、アプリケーション名、ログレベルなどがあります。ここでは、初心者が最初に覚えておきたい代表的な項目を紹介します。
サーバーのポート番号
前のセクションでも紹介しましたが、Webアプリの待ち受けポート番号を変更するには以下のようにします。
server.port=8081
コンテキストパス
アプリケーションのURLのベースパスを指定するには、server.servlet.context-pathを使います。例えば、http://localhost:8080/myappでアクセスしたい場合は次のように記述します。
server.servlet.context-path=/myapp
アプリケーション名の指定
Spring Bootアプリケーションに名前をつけておくと、ログ出力時などに便利です。
spring.application.name=sample-app
ログレベルの設定
ログ出力のレベルを設定することで、開発中に必要な情報だけを表示できます。
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
HTMLテンプレートの自動リロード(Thymeleafを使用する場合)
Thymeleafのテンプレートを修正して即時反映させたい場合の設定です。
spring.thymeleaf.cache=false
上記のように、application.propertiesファイルに設定を追加していくことで、プロジェクトの動作を柔軟にコントロールできます。Pleiadesのような統合開発環境でも、簡単に編集できるので、開発初心者にとっても扱いやすい設定ファイルです。
4. よくあるミスとその対処法
application.propertiesの編集では、初心者がつまずきやすいポイントもいくつかあります。ここでは代表的なミスと、その解決方法について解説します。
よくあるミス1:スペルミスやキー名の誤り
例:server.portをsever.portと間違える。
sever.port=8081 // 誤り
このようにキー名を間違えてもSpring Bootはエラーを出さず、単に無視されるだけです。そのため、設定が反映されず「なぜだろう?」と悩むことになります。対策としては、公式ドキュメントを参照したり、IntelliJやPleiadesで補完機能を活用することが重要です。
よくあるミス2:記述位置の誤り
application.propertiesファイルは、必ずsrc/main/resourcesディレクトリ内に配置する必要があります。別の場所に置いてもSpring Bootは読み込んでくれません。
src
└── main
└── resources
└── application.properties
よくあるミス3:優先順位の誤解
Spring Bootでは、プロファイルごとの設定(application-dev.propertiesなど)やコマンドライン引数の方がapplication.propertiesより優先されます。
そのため、期待した設定が反映されない場合は、別の場所で上書きされていないかを確認しましょう。Pleiadesの実行構成やbuild.gradleの中で設定が追加されていないかもチェックポイントです。
よくあるミス4:コメントの書き方
application.propertiesでは、行頭に#をつけることでコメントを記述できますが、意図せずコメントアウトしてしまっているケースもあります。
#server.port=8081 // この行はコメントになり無効
コメントアウトしてしまうと、その設定は無視されるため注意が必要です。初心者が「設定が効かない」と悩んでいる場合、まずコメントになっていないかを確認するとよいでしょう。
これらのapplication.propertiesに関するよくあるミスを避けるためには、設定の基本を理解し、設定ファイルの記述ルールを意識して書くことが大切です。検索キーワードとしても「application.properties 記述例」「ポート番号の設定」「初心者のミス」などで調べておくと、困ったときに素早く情報を得ることができます。
5. 独自の設定値を定義する方法
Spring Bootでは、あらかじめ用意された設定項目だけでなく、自分で独自の設定値(カスタムプロパティ)をapplication.propertiesに記述することもできます。たとえば、自作の値をmyapp.というプレフィックスで定義することで、他の設定と区別しやすくなります。
myapp.site.title=初心者向けSpringアプリ
myapp.site.version=1.0.0
このようにmyapp.のような独自のプレフィックスを使うと、設定ファイルの中で自分のプロジェクト用の情報を整理しやすくなります。特にチーム開発や設定項目が増えてきたときに便利です。
このカスタムプロパティは、後述する方法でJavaのクラス内で読み取ることができます。「Spring 設定ファイル カスタム」などのキーワードで検索すると、他のプロジェクトでの実例も参考になります。
6. 設定値をJavaクラスに読み込む方法
カスタムプロパティなどの値を、Javaコードで利用したいときは、設定ファイルから手動で読み込むこともできます。初心者でも扱いやすい方法として、Environmentインタフェースを使う方法があります。
次の例では、application.propertiesに記述したmyapp.site.titleの値をコントローラクラスで取得しています。
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@Autowired
private Environment env;
@GetMapping("/")
public String index(Model model) {
String title = env.getProperty("myapp.site.title");
model.addAttribute("title", title);
return "index";
}
}
EnvironmentはSpringが提供する仕組みで、設定ファイルに記述された値を取得できます。この方法なら、@Valueアノテーションなどを使わずに済むため、初心者にも理解しやすいです。
myapp.site.titleなどのカスタムプロパティをうまく活用すると、環境ごとの値切り替えにも対応しやすくなります。「初心者 設定値 読み込み」といったキーワードで関連情報を探すと、使い方のバリエーションが理解しやすくなります。
7. 初心者が設定ファイルを正しく管理するためのポイント
最後に、初心者がapplication.propertiesを使う際に意識したい管理ポイントを紹介します。設定ファイルはアプリの動作に大きく関わるため、ミスなく正確に扱うことが重要です。
コメントで意味を残す
設定の意味や目的がわからなくなったときに備えて、コメントを活用しましょう。#で始まる行は無視されるため、説明を書いておくのに便利です。
# 開発環境用のポート番号
server.port=8081
設定値を増やしすぎない
設定値を追加しすぎると管理が大変になります。整理された命名ルール(例:myapp.db.usernameなど)を守り、定期的に見直すことも大切です。
環境ごとに分けて管理
本番用や開発用など、環境ごとに設定を分けるにはapplication-dev.propertiesのようにプロファイルを使います。Pleiadesで起動構成を切り替えることで、簡単にプロファイルを変更できます。
誤ってバージョン管理に含めない
APIキーやパスワードなど、機密情報をapplication.propertiesに書いてしまうと、Gitなどのバージョン管理システムで外部に漏れてしまう恐れがあります。こうした情報は別ファイルに切り出すか、環境変数で管理するのが安全です。
これらのポイントを押さえておけば、「Spring 設定ファイル 管理」「初心者 application.properties 運用」などのキーワードで検索したときにも、トラブルを回避するヒントを得ることができます。設定ファイルを正しく管理することで、プロジェクト全体の品質と保守性が向上します。