Spring Bootのapplication.propertiesで設定可能な主要項目と管理方法

こんにちは。ゆうせいです。

新人研修中に受講者から以下の質問をいただきました。

application.propertiesではどのような設定が可能ですか?

今回はこの質問に答えたいと思います。

Spring Bootにおいて、application.propertiesはアプリケーションの挙動を外部から制御するための中心的なファイルです。ソースコードを書き換えることなく、動作環境や接続先を調整するために使用されます。今回は、このファイルで設定できる主な項目とその具体的な記述内容について解説します。

サーバーに関する基本設定

アプリケーションが起動する際のネットワーク上の振る舞いを指定します。

これは、家を建てた際の玄関の場所や、来客がチャイムを鳴らすルールを決めることに似ています。

  • server.port:アプリケーションが待ち受けるポート番号を指定します。標準は8080ですが、他のシステムと番号が重なる場合に変更します。
  • server.servlet.context-path:URLの先頭に付与する共通のパスを指定します。例えば /myapp と設定すると、すべての機能のURLがこのパスから始まるようになります。
server.port=9000
server.servlet.context-path=/app

データベースの接続設定

アプリケーションが情報を保存するデータベース(倉庫)に、どのようにアクセスするかを定義します。

高校の図書室の貸出システムに例えると、図書室の住所、入室するための鍵、管理者の名前を登録する作業に相当します。

  • spring.datasource.url:接続先データベースの場所(URL)を記述します。
  • spring.datasource.username:接続に使用するユーザー名です。
  • spring.datasource.password:接続に使用するパスワードです。
  • spring.datasource.driver-class-name:使用するデータベースの種類に応じたプログラム(ドライバー)を指定します。
spring.datasource.url=jdbc:mysql://localhost:3306/sample_db
spring.datasource.username=dbuser
spring.datasource.password=dbpassword

フレームワークの動作とログの設定

使用しているライブラリやログ(記録)の出力ルールを調整します。

これは、授業のノートをどの程度詳しく取るか、あるいは間違えたときに自動で修正するかどうかを決める設定に例えられます。

  • logging.level.root:出力するログの細かさを指定します。DEBUG、INFO、ERRORなどの段階があります。
  • spring.jpa.show-sql:データベース操作時に、内部で実行されている命令(SQL)を画面に表示するかどうかを切り替えます。
  • spring.thymeleaf.cache:画面のデザイン(Thymeleaf)を一時保存するかどうかを決めます。開発中は変更を即座に反映させるため、falseに設定するのが一般的です。
logging.level.org.springframework=INFO
spring.jpa.show-sql=true
spring.thymeleaf.cache=false

設定管理のメリットとデメリット

application.propertiesを利用して設定を管理することには、事実として以下の側面があります。

項目具体的な内容
メリット:再コンパイルが不要設定を変更する際、Javaコードを書き換えてプログラムを作り直す手間が省けます。
メリット:環境切り替えの容易性開発用、本番用などの設定ファイルを分けることで、環境移行がスムーズになります。
デメリット:設定ミスの検知時期設定の間違いはプログラムの実行時まで判明しないため、起動時にエラーが発生する原因となります。
デメリット:セキュリティ管理の注意パスワードを直接記述する場合、ファイルの取り扱いに十分な注意を払う必要があります。

まとめ

application.propertiesを適切に使い分けることで、柔軟で安全なアプリケーションの運用が可能になります。学習を深めるためのステップを以下に示します。

  1. 自分のアプリケーションで、ポート番号を8080以外の数値に変更して起動できるか試行する。
  2. データベース接続情報をファイルに記述し、実際にデータが保存・取得できるかを確認する。
  3. ログの出力レベルを変更し、出力される情報の量や内容がどのように変化するかを観察する。
  4. プロファイル機能を使い、開発用とテスト用の設定を別々のファイルに分離して管理する練習を行う。

グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。