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を適切に使い分けることで、柔軟で安全なアプリケーションの運用が可能になります。学習を深めるためのステップを以下に示します。
- 自分のアプリケーションで、ポート番号を8080以外の数値に変更して起動できるか試行する。
- データベース接続情報をファイルに記述し、実際にデータが保存・取得できるかを確認する。
- ログの出力レベルを変更し、出力される情報の量や内容がどのように変化するかを観察する。
- プロファイル機能を使い、開発用とテスト用の設定を別々のファイルに分離して管理する練習を行う。
グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール


