スポンサーリンク

デプロイ(CD/CI)

SpringBootでapplication.properties/ymlをdev/prodの環境ごとに切り替える

投稿日:2021年7月21日 更新日:

【準備】プロパティファイルを環境ごとに名前を変えて用意する

プロパティファイルはapplication.properties/ymlである。
ファイル名に「-xxx」をつけて、環境分用意する。

server.port=8080
server.port=5000
server.port=XXXX

【ローカル】開発環境で実行するときに切り替える

Eclipseの場合

プロジェクトを右クリック>実行>実行の構成 のSpringBootタブで指定できる。

プロファイルという項目の値に、「application-xxx.properties」の「xxx」を指定すれば良い。

  • application.properties なら、何も指定しない。
  • application-prod.properties なら、「prod」と記述する。
  • application-hoge.properties なら、「hoge」と記述する。

実行時のログで、環境が切り替わっていることがわかる。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.2)

2021-07-21 22:06:53.809  INFO 13372 --- [Main] jp.co.xxx.shop.ShopApplication           : Starting ShopApplication using Java 15.0.2 on DESKTOP-8J02B7R with PID 13372 (C:\pleiades\workspace\shop\target\classes started by Noric in C:\pleiades\workspace\shop)
2021-07-21 22:06:53.812  INFO 13372 --- [Main] jp.co.xxx.shop.ShopApplication           : The following profiles are active: hoge

「The following profiles are active: hoge
この部分が、指定している環境である。

gradle bootRunの場合

コマンドからgradle bootRunする場合は、次のようにオプションで指定できる。

> gradle bootRun --args='--spring.profiles.active=hoge'

【本番】本番環境で実行するときに切り替える

javaコマンドの引数で指定する

サーバーにはGradle bootJarで作成した実行可能jarをデプロイする。

その時、次のように「Dspring.profiles.active」オプションでプロパティファイルを指定できる。

$ java -Dspring.profiles.active=hoge -jar target/shop-0.0.1-SNAPSHOT.jar

環境変数で切り替える

環境変数 SPRING_PROFILES_ACTIVE に値をセットした後、jarを実行することで切り替えることができる。

$ export SPRING_PROFILES_ACTIVE=hoge
$ java -jar target/shop-0.0.1-SNAPSHOT.jar

profileは複数指定可能

-Dspring.profiles.active=hoge1,hoge2

どのような指定方法でも、上記のように複数のprofileを指定できます。

どんな種類の環境を用意する?

一般的には、次のような環境を用意する。

  • ローカル開発環境用→application.properties or application-dev.properties or application-development.properties
  • テスト環境用→application-test.properties
  • 本番環境用→application-prod.properties or application-production.properties

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-デプロイ(CD/CI)

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.