カテゴリ: Springの基本 更新日: 2025/12/07

Spring Bootの設定(application.properties, YAML)を完全ガイド!初心者向けにやさしく解説

Spring Bootの設定(application.properties, YAML)
Spring Bootの設定(application.properties, YAML)

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

新人

「Spring Bootって便利って聞きますけど、設定ファイルって何をするためのものなんですか?」

先輩

「設定ファイルは、アプリケーションの動作を簡単に切り替えられるようにするためのものだよ。特にapplication.propertiesapplication.ymlは、Spring Bootでよく使う設定ファイルだね。」

新人

「どうやって使うんですか?どこに書けばいいんでしょう?」

先輩

「それじゃあ、まずはapplication.propertiesの基本から順番に見ていこうか。」

1. Spring Bootの設定とは?役割と目的を理解しよう

1. Spring Bootの設定とは?役割と目的を理解しよう
1. Spring Bootの設定とは?役割と目的を理解しよう

Spring Bootの設定ファイルとは、アプリケーションの動作を制御するためのファイルです。起動ポート番号の変更、ログの出力レベル、データベース接続情報などを、この設定ファイルに書くことで、プログラムを書き換えることなく動作を変更できます。

Spring Bootでは、主に次の2種類の形式で設定を行います。

  • application.properties:シンプルなキーと値の組み合わせ
  • application.yml:YAML形式で階層構造が分かりやすい

どちらを使っても同じことができますが、好みによって使い分けがされています。

また、設定ファイルはsrc/main/resourcesディレクトリの中に配置されるのが一般的です。これは、Spring Bootがこの場所を自動的に探すようになっているからです。

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

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

application.propertiesは、Spring Bootで最もよく使われる設定ファイルです。キーと値を=で結ぶ形式で設定を書いていきます。

例えば、Webアプリケーションの起動ポートを変更したい場合、次のように書きます。


server.port=8081

この設定により、デフォルトの8080ポートではなく、8081ポートでアプリケーションが起動します。

さらに、アプリケーション名やログの設定も行えます。


spring.application.name=sample-app
logging.level.org.springframework=INFO

これにより、アプリケーション名がsample-appとなり、Springのログ出力レベルがINFOに設定されます。

設定ファイルはどこに保存する?

設定ファイルはsrc/main/resourcesフォルダ内に保存します。Spring Bootではこの場所がデフォルトで読み込まれるため、特別な指定をしなくても自動的に設定が反映されます。

Pleiades環境でプロジェクトを作成した場合も、プロジェクト内にあるsrc/main/resourcesの中にapplication.propertiesファイルを新規作成するだけでOKです。

設定を使って@Controllerでページを表示してみよう

設定ファイルの内容が実際にどのように影響するかを見てみましょう。ここでは、コントローラで簡単な画面を表示する例を紹介します。@RestControllerではなく、@Controllerを使って書いています。


package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("message", "Spring Bootの設定ファイルからこんにちは!");
        return "index";
    }
}

このコントローラは、ルートURL(/)にアクセスすると、index.htmlを表示し、メッセージを画面に渡します。

このとき、設定ファイルでテンプレートエンジンの設定をしておくと便利です。


spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
Gradleで依存関係を追加するには?

application.propertiesを使った設定を活かすために、必要な依存関係をbuild.gradleに追加する必要があります。Pleiadesのチェック機能で追加してもよいですが、手動で編集することもあります。


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

これにより、Thymeleafによる画面表示と、Webアプリケーション開発に必要なモジュールがプロジェクトに追加されます。

プロパティ名の補完とエラー防止

Pleiadesでは、application.propertiesの中でプロパティ名を入力する際に、入力補完が効きます。たとえばserver.と入力すると候補が一覧表示されるので、初心者でも間違えにくくなっています。

また、存在しないキーを入力した場合は、警告が表示されるため、間違いにもすぐに気づけるようになっています。

3. application.propertiesでよく使う便利な設定項目まとめ

3. application.propertiesでよく使う便利な設定項目まとめ
3. application.propertiesでよく使う便利な設定項目まとめ

Spring Bootのapplication.propertiesでは、さまざまな設定が可能です。ここでは、Gradleプロジェクトを使って開発する際によく使われる項目を中心に紹介します。初心者でも理解しやすいよう、実際の使用例とともに丁寧に解説します。

サーバーポート番号の変更

ポート番号を変更することで、他のアプリケーションと競合しないように設定できます。


server.port=8081
アプリケーション名の指定

アプリケーションの名前を指定すると、ログや監視ツールで識別しやすくなります。


spring.application.name=demo-application
ログ出力レベルの調整

開発中は詳細なログを見たいときがあります。以下のようにDEBUGINFOなどに設定できます。


logging.level.org.springframework=DEBUG
Thymeleafのキャッシュを無効化

HTMLテンプレートを頻繁に変更する場合、キャッシュが有効だと反映されないことがあります。開発中は無効にしておくと便利です。


spring.thymeleaf.cache=false
データベース接続の設定(例:H2データベース)

開発用のデータベースを接続するには以下のように記述します。


spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

4. application.ymlとは?YAML形式の書き方とproperties形式との違い

4. application.ymlとは?YAML形式の書き方とproperties形式との違い
4. application.ymlとは?YAML形式の書き方とproperties形式との違い

application.ymlは、Spring Bootの設定ファイルとしてapplication.propertiesと並んでよく使われる形式です。YAML形式は階層構造をインデントで表すことができ、設定をより見やすく整理できます。

基本の書き方(YAML形式)

以下は、ポート番号やアプリケーション名を設定する例です。プロパティ形式と違って、インデントで階層を表現する点が特徴です。


server:
  port: 8082

spring:
  application:
    name: demo-yml-app
同じ設定をproperties形式で書いた場合

上記の設定は、application.propertiesでは以下のようになります。


server.port=8082
spring.application.name=demo-yml-app
YAML形式のインデントに注意

YAML形式では、インデントをタブ文字ではなく半角スペースで記述しなければなりません。スペースの数や位置を間違えると、Spring Bootが起動時にエラーになります。

また、階層構造が深くなった場合は見た目でブロックが分かりやすくなるため、大規模な設定や配列構造を持つ設定にはYAMLが向いています。

Thymeleaf設定をYAMLで書く場合

テンプレートエンジンのパスやサフィックスの設定もYAML形式で記述可能です。


spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    cache: false
複雑なデータを扱うときのYAMLの強み

YAMLでは、配列Mapのような構造も簡単に記述できます。以下は複数の管理者メールアドレスを設定する例です。


mail:
  admins:
    - admin1@example.com
    - admin2@example.com
    - admin3@example.com

これをapplication.propertiesで表現すると次のようになります。


mail.admins[0]=admin1@example.com
mail.admins[1]=admin2@example.com
mail.admins[2]=admin3@example.com

YAMLの方が構造的に整理されており、視認性が高くなっています。

どちらの設定ファイルを使えばいい?

application.propertiesapplication.ymlのどちらを使うかは、プロジェクトやチームの方針によります。初心者にとってはapplication.propertiesの方がシンプルで書きやすいという利点があります。

一方で、設定の項目数が増えてくると、YAML形式の方が視認性や保守性が高くなる場面もあります。特に配列やネスト構造がある場合は、application.ymlを使った方が効率的です。

Spring Bootではどちらの形式も同時に扱えますが、両方に同じプロパティがあるとプロパティ形式が優先されるため、どちらか一方に統一するのが良い運用方法です。

5. application.propertiesとapplication.ymlの使い分けとメリット比較

5. application.propertiesとapplication.ymlの使い分けとメリット比較
5. application.propertiesとapplication.ymlの使い分けとメリット比較

Spring Bootで設定ファイルを扱うとき、application.propertiesapplication.ymlのどちらを使えばよいか迷うことがあります。それぞれの形式には特徴と利点があり、プロジェクトの規模やチームの方針によって使い分けるのが一般的です。

application.propertiesのメリット
  • 設定が単純で初心者にとって書きやすい
  • 1行に1つの設定を書くため、見落としが少ない
  • IDE(Pleiades)での補完機能がわかりやすい
application.ymlのメリット
  • 階層構造をきれいに表現できる
  • 配列やネスト構造をシンプルに記述できる
  • 大規模プロジェクトで設定管理がしやすい

例えば、以下のようなYAML形式の設定は、構造がはっきりしていて読みやすいです。


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sample
    username: user
    password: pass

このような複雑な設定をapplication.propertiesで書くと、可読性が下がる場合があります。

初心者にはapplication.propertiesから始めるのがおすすめですが、慣れてきたらapplication.ymlにも挑戦してみるとよいでしょう。

6. 設定ファイルによってコントローラの挙動がどう変わるか見てみよう

6. 設定ファイルによってコントローラの挙動がどう変わるか見てみよう
6. 設定ファイルによってコントローラの挙動がどう変わるか見てみよう

ここでは、設定ファイルを変更することで、@Controllerで構成された画面表示にどのような影響があるかを具体的に見ていきましょう。

まず、設定ファイルに以下のようなプロパティを記述します。


spring.application.name=message-sample
message.greeting=ようこそ、Spring Bootへ!

このmessage.greetingというカスタムプロパティを、コントローラ内で読み込むようにします。


package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class GreetingController {

    @Value("${message.greeting}")
    private String greetingMessage;

    @GetMapping("/greeting")
    public String greeting(Model model) {
        model.addAttribute("message", greetingMessage);
        return "greeting";
    }
}

このように、設定ファイルで定義した値をアノテーション@Valueを使って取り込み、画面に表示することができます。

greeting.htmlには以下のように記述します。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>挨拶ページ</title>
</head>
<body>
    <h1 th:text="${message}">メッセージが表示されます</h1>
</body>
</html>

ブラウザでhttp://localhost:8080/greetingにアクセスすると、設定ファイルに書いた内容が表示されるようになります。これにより、コードを変更せずに挙動を柔軟に調整できるのがSpring Boot設定ファイルの魅力です。

7. 初心者が設定ファイルでつまずきやすいポイントとその対処法

7. 初心者が設定ファイルでつまずきやすいポイントとその対処法
7. 初心者が設定ファイルでつまずきやすいポイントとその対処法

Spring Bootの設定ファイルはとても便利ですが、初心者がよくつまずくポイントもいくつかあります。ここでは代表的な失敗とその対処法を紹介します。

YAMLのインデントミス

application.ymlで、タブ文字やスペースの数が間違っていると、アプリケーションが正しく起動しません。エラーメッセージには「mapping values are not allowed here」や「could not find expected ':'」などと表示されます。

対処法:インデントには必ず半角スペースを使い、階層構造に注意して書くこと。

プロパティ名のタイプミス

正しいプロパティ名を書かないと、設定が反映されません。例えばspring.applicationn.nameのような誤記は意外と多いです。

対処法:Pleiadesでは補完機能があるので、それを活用して正確に入力すること。

設定ファイルの場所が間違っている

application.propertiesapplication.ymlは、src/main/resourcesに配置しなければ認識されません。

対処法:ファイルの場所を確認し、必ずリソースフォルダの直下に配置すること。

プロファイルごとの設定切り替えが混乱する

複数のプロファイル(開発用、テスト用など)を使う場合、設定の優先順位が複雑になります。

対処法:最初のうちはapplication.propertiesまたはapplication.yml一つにまとめ、慣れてからプロファイル分けを学ぶとよいです。

これらの注意点をおさえておけば、設定ファイルのトラブルを未然に防ぐことができます。

まとめ

まとめ
まとめ

SpringBootの設定ファイルであるapplicationpropertiesとapplicationymlは初心者が最初につまずきやすい部分ですが慣れてくるとアプリケーション全体の挙動を柔軟に制御できる非常に便利な仕組みになります。特に設定内容をコードに直接書き込まず環境ごとに切り替えられる点は現代のシステム開発において欠かせない考え方であり設定ファイルの理解が深まるほど開発効率も品質も向上していきます。設定の役割を正しく把握しておくことでサーバーポート変更ログレベル調整データベース接続など日常的によく使う設定をすぐに扱えるようになり学習を進めるうえでの大きな助けになります。さらに設定ファイルはコントローラの動作やテンプレートエンジンの挙動にも影響するため設定とアプリケーションコードの関係を理解することで画面表示や動作確認がよりスムーズに行えるようになります。特にspringapplicationnameやspringthymeleafprefixなどの基本項目は初心者が必ず触る設定であり早い段階で慣れておくとその後の開発が一気に楽になります。またyml形式は階層構造が視覚的に理解しやすく設定数が増えた際の見通しが良いため中級者以降の開発ではpropertiesよりも活躍する場面が増えていきます。配列やネスト構造を自然に表現できる特性は大規模プロジェクトで特に効果を発揮し複数環境の設定や外部サービスとの連携設定も分かりやすく管理できます。設定ファイルがsrcmainresourcesに自動的に読み込まれるという仕組みも理解しておくとトラブルの予防につながり初心者がよくやってしまう配置ミスによる起動エラーを防ぐことができます。さらにpleiadesにおける入力補完は設定項目の理解を助け正しい書き方を覚える大きな手助けとなるため学習の段階から積極的に活用すると良いでしょう。設定に慣れてくれば独自の値を定義してコントローラに読み込む方法や環境に応じた設定切り替えも自然に扱えるようになりより柔軟なアプリケーション構築が可能になります。このように設定ファイルの理解はspringboot学習の基盤となり基礎を押さえることで後から学ぶセキュリティやデータベース連携バッチ処理などさまざまな仕組みにも応用が利きます。ここで紹介したような設定ファイルを使いこなすための考え方や書き方を身につければプロジェクトの規模に関わらず安定した開発が行えるようになり設定内容を明確に整理できることでチーム開発における情報共有も格段にやりやすくなります。設定の基本をしっかり押さえたうえで実際の開発で頻繁に触れるプロパティやymlの書き方を習得しておくことは長期的なスキル向上につながり今後springbootで開発を進めるうえでの確かな土台となります。設定ファイルを使い分ける力が身につくと開発効率は大きく改善し新機能追加や既存機能の改善も素早く反映できるようになりアプリケーション全体の品質維持にも大きく貢献します。ここで解説した内容を参考にしながら自分のプロジェクトでも積極的に設定ファイルを触ってみて使い分けを実践することでspringbootの理解が格段に深まり実践力が高まります。これらの基礎を積み重ねていくことでさまざまな場面で応用できる知識となり設定という仕組みそのものが開発現場でどれほど重要な位置付けにあるかをより実感できるはずです。

設定ファイル活用のサンプルコード


server.port=8085
spring.application.name=sample-config-app
custom.message=設定ファイルから読み込んだメッセージです

@Controller
public class SampleConfigController {

    @Value("${custom.message}")
    private String message;

    @GetMapping("/config")
    public String config(Model model) {
        model.addAttribute("msg", message);
        return "config";
    }
}

spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    cache: false
先生と生徒の振り返り会話

生徒:きょう学んだ設定ファイルの使い方ですがpropertiesとymlの違いがだいぶわかってきました。

先生:どちらの形式も大切ですが慣れてくると場面に応じて使い分ける力がついてきますよ。

生徒:設定内容をコードに書かなくても切り替えられるのがとても便利だと思いました。

先生:その感覚はとても大事ですね設定をうまく使えば開発効率も品質も上がります。

生徒:環境ごとの設定切り替えも次は挑戦してみたいです。

先生:ぜひやってみましょう設定ファイルを理解するほどspringboot開発が楽しくなりますよ。

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

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

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

Spring Bootのapplication.propertiesって何のために使うんですか?

application.propertiesはSpring Bootアプリケーションの設定をまとめて記述するためのファイルで、サーバーポートやアプリ名、ログレベルなどの設定をコードを書き換えずに変更できる便利な仕組みです。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
New1
SpringのDB操作
Spring BootでJdbcTemplateを有効化する方法を完全解説!依存関係と設定を初心者向けにやさしく理解しよう
New2
Thymeleaf
Thymeleaf 変数の定義方法をわかりやすく解説|初心者向けテンプレート入門
New3
Thymeleaf
Thymeleaf th:attrで属性をまとめて設定する方法を初心者向けに解説
New4
Thymeleaf
ThymeleafとJavaScriptのonclickで引数を渡す方法を完全解説!初心者でもわかる値の受け渡し
人気記事
No.1
Java&Spring記事人気No1
Thymeleaf
Thymeleaf とは?初心者向けにThymeleafの基本を徹底解説
No.2
Java&Spring記事人気No2
SpringのDB操作
JPAの標準クエリメソッド(findById, findAll)を完全解説!初心者でもわかるデータ取得の基本
No.3
Java&Spring記事人気No3
SpringのWeb開発(Spring MVC)
Spring MVC入門(概要とアーキテクチャ)
No.4
Java&Spring記事人気No4
SpringのAPI開発(REST & GraphQL)
REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)を初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
Spring認証(Spring Security)
セッション管理の基本(@SessionAttributes)を完全解説!初心者でもわかるセッションの仕組み
No.6
Java&Spring記事人気No6
SpringのDB操作
findByXxx, existsByXxx の基本(JPA)を完全解説!初心者でもわかるクエリメソッドの使い方
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleaf if elseの書き方と条件分岐の活用法!初心者でもわかる使いこなしガイド
No.8
Java&Spring記事人気No8
SpringのWeb開発(Spring MVC)
@RequestMappingの基本を完全ガイド!初心者でもわかるルーティングの仕組み