概要
application.properties に共通設定を記載し application-dev.properties や application-prd.properties に差分の設定を記載します
環境
- macOS 26.4.1
- openjdk 26.0.1
- SpringBoot 4.0.6
- gradle 9.5.1
- VSCode 1.121.0
- MySQL 9.6.0
application.properties
ここに共通設定を記載します
spring.application.name=demo
# update はアプリケーション起動時に、Entityに対応するテーブルがなければ作成します
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/mydatabase
spring.datasource.username=ENC(bFMupckSRHJ/9QmXd1EVTw==)
spring.datasource.password=ENC(j64PBY1HLuuLo6Qoxo2xUg==)
# Jasypt 暗号化キーの設定(環境変数から取得)
jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
jasypt.encryptor.password=${JASYPT_PASSWORD:default_password}
application-dev.properties
あとは各環境ごとの設定ファイルに差分や上書き設定を記載します
# Dev profile only: datasource URL override
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/mydatabase_dev
application-prd.properties
# Prd profile only: datasource URL override
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/mydatabase
実行
-
./gradlew bootRun --args='--spring.profiles.active=dev'
-
./gradlew bootRun --args='--spring.profiles.active=prd'
application.yaml ならまとめて記載もできる
- vim application.yaml
spring:
config:
import:
- classpath:application-common.yaml
---
spring:
config:
activate:
on-profile: dev
import:
- classpath:application-dev.yaml
---
spring:
config:
activate:
on-profile: prod
import:
- classpath:application-prod.yaml
で application-common.yaml に共通部分を記載しそれぞれの設定を application-dev.yaml/application-prd.yaml に記載すれば OK です
最後に
設定項目が増えた場合はファイルを分割しましょう
さらに共通設定が増えた場合は共通設定ファイルを作成し差分だけを各環境ごとに管理するようにしましょう
0 件のコメント:
コメントを投稿