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を使用することで、複数のプロファイルを簡単に管理し、さらに環境に対する設定を完全に分離することができます。これは、大規模プロジェクトの開発や運用において非常に有用な方法です。