0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spring Boot 多環境開発におけるプロファイル分類とspring.profiles.groupの利用

Posted at

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-dbdev-cacheが含まれ、prodプロファイルにはprod-dbprod-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-dbdev-cacheのプロファイルが同時に適用されます。

YMLファイルでプロファイルを切り替える方法

プロファイル切り替えはspring.profiles.activeapplication.ymlに直接設定することでも実現できます。

spring:
  profiles:
    active: dev

この設定により、プロファイルdevが自動的に適用されます。ただし、環境によって変更が必要な場合は、コマンドラインコードを使用する方が優先されます。

まとめ

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?