Spring Boot 多環境開発におけるプロファイル分類とspring.profiles.group
の利用
Spring Boot の多環境開発において、application.yml
を有効に使用するための分類化は重要です。特に、spring.profiles.group
を使用すると、複数のプロファイルをグループ化して管理できるので、コードを準備する際にとても便利です。この記事では、この機能を使用した有効な設定方法を解説します。
application.yml
の基本設定
さずめて、一般的なapplication.yml
の構造を見てみましょう:
spring:
profiles:
group:
dev: ["dev-db", "dev-cache"]
prod: ["prod-db", "prod-cache"]
この設定は、プロファイルグループを制御するために使用されます。dev
プロファイルにはdev-db
とdev-cache
が含まれ、prod
プロファイルにはprod-db
とprod-cache
が含ます。
個別の設定ファイル
これらのプロファイルの設定を個別のapplication-*.yml
に分類することができます。この例を見ていきましょう。
application-dev-db.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/dev_db
username: dev_user
password: dev_password
application-dev-cache.yml
cache:
type: redis
host: localhost
port: 6379
application-prod-db.yml
spring:
datasource:
url: jdbc:mysql://prod-db-server:3306/prod_db
username: prod_user
password: prod_password
application-prod-cache.yml
cache:
type: redis
host: prod-redis-server
port: 6379
プロファイルの切り替え
プロジェクトを起動する際に、この設定を使用したプロファイルを指定することができます。例えば、dev
プロファイルを使用する場合:
java -Dspring.profiles.active=dev -jar myapp.jar
これにより、dev-db
とdev-cache
のプロファイルが同時に適用されます。
YMLファイルでプロファイルを切り替える方法
プロファイル切り替えはspring.profiles.active
をapplication.yml
に直接設定することでも実現できます。
spring:
profiles:
active: dev
この設定により、プロファイルdev
が自動的に適用されます。ただし、環境によって変更が必要な場合は、コマンドラインコードを使用する方が優先されます。
まとめ
spring.profiles.group
を使用することで、複数のプロファイルを簡単に管理し、さらに環境に対する設定を完全に分離することができます。これは、大規模プロジェクトの開発や運用において非常に有用な方法です。