SpringBoot-Profileマルチ環境運転
16575 ワード
Profileの適用シーン
開発、テスト、生産の3つの異なる環境がある場合は、3つの異なる環境での構成を定義する必要があります.SpringBootではprofileをサポートする3つの方法があります
方法1:propertiesファイルタイプに基づいて、ファイル名にprofileパラメータを追加するapplication-{profile}.properties
:
application-dev.properties
application-test.properties
application-production.properties
方法2:ymlファイルタイプに基づいて、ファイル名にprofileパラメータを追加するapplication-{profile}.yml
:
application-dev.yml
application-test.yml
application-production.yml
方式3:ymlファイルタイプに基づいて、単一ymlフォーマットプロファイルでspringを通過する.profilesプロパティは、複数のprofile構成を定義します.# profile,
server:
port: 8080
---
# dev
spring:
profiles: dev
server:
port: 8081
---
# test
spring:
profiles: test
server:
port: 8082
---
# prod
spring:
profiles: prod
server:
port: 8083
プロファイル構成の指定を有効にする
プロファイルに直接書き込み
アプリケーション汎用プロファイルでのプロパティの使用spring.profiles.active=xxx( x dev、test、prod)
起動時に有効にするprofileを直接書きます(開発環境にのみ適しています)
SpringBootコマンドライン起動時にprofileを指定
もしそうならprofiles.Activeに値が指定されていない場合はspringが指定されていないのみが使用されます.profilesの値、つまり汎用的な構成のみがロードされます.
アプリケーションを起動するときにspringをprofiles.Activeは、環境を変更するたびにプロファイルを手動で変更してコンパイルする必要がないように指定します.
Jarパッケージを実行する場合、コマンドラインを使用してxxx環境パラメータを指定します.java -jar xxxx.jar --spring.profiles.active=***
コマンドラインの3つのポイントはdev、test、prodと書くことができます.springに注意してください.profiles.Activeの前に「-」が2つあります
Mavenを使用して、パッケージ時に特定のProfilesプロファイルのみをロードします。
様々な理由から、どの環境のパッケージを作成したいのか、この環境を含むプロファイルだけでいいのか、他の環境のプロファイルを含めたくないのか、パッケージ化時に直接環境を指定することができます.
パッケージ化時に使用する環境を指定
application-{profile}.properties
:
application-dev.properties
application-test.properties
application-production.properties
application-{profile}.yml
:
application-dev.yml
application-test.yml
application-production.yml
# profile,
server:
port: 8080
---
# dev
spring:
profiles: dev
server:
port: 8081
---
# test
spring:
profiles: test
server:
port: 8082
---
# prod
spring:
profiles: prod
server:
port: 8083
プロファイルに直接書き込み
アプリケーション汎用プロファイルでのプロパティの使用
spring.profiles.active=xxx( x dev、test、prod)
起動時に有効にするprofileを直接書きます(開発環境にのみ適しています)
SpringBootコマンドライン起動時にprofileを指定
もしそうならprofiles.Activeに値が指定されていない場合はspringが指定されていないのみが使用されます.profilesの値、つまり汎用的な構成のみがロードされます.
アプリケーションを起動するときにspringをprofiles.Activeは、環境を変更するたびにプロファイルを手動で変更してコンパイルする必要がないように指定します.
Jarパッケージを実行する場合、コマンドラインを使用してxxx環境パラメータを指定します.
java -jar xxxx.jar --spring.profiles.active=***
コマンドラインの3つのポイントはdev、test、prodと書くことができます.springに注意してください.profiles.Activeの前に「-」が2つあります
Mavenを使用して、パッケージ時に特定のProfilesプロファイルのみをロードします。
様々な理由から、どの環境のパッケージを作成したいのか、この環境を含むプロファイルだけでいいのか、他の環境のプロファイルを含めたくないのか、パッケージ化時に直接環境を指定することができます.
パッケージ化時に使用する環境を指定
spring.profiles.active=@profileName@
mavenパッケージで指定した***は、ここのプレースホルダを自動的に置き換えます[@profileName@]
<profiles>
<profile>
<id>devid>
<properties>
<profileName>devprofileName>
properties>
profile>
<profile>
<id>testid>
<properties>
<profileName>testprofileName>
properties>
profile>
<profile>
<id>prodid>
<properties>
<profileName>prodprofileName>
properties>
profile>
profiles>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<version>2.7version>
<configuration>
<delimiters>
<delimiter>@delimiter>
delimiters>
<useDefaultDelimiters>falseuseDefaultDelimiters>
configuration>
plugin>
mvn clean package -Dmaven.test.skip=true -P ***
mavenパッケージ時に指定された-P後の***は、dev、test、prodと書くことができます.
java -jar xxxx.jar
パッケージ化時にどの環境を使用するかは指定されていません
<profiles>
<profile>
<id>devid>
<properties>
<profileName>devprofileName>
properties>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
<profile>
<id>testid>
<properties>
<profileName>testprofileName>
properties>
profile>
<profile>
<id>prodid>
<properties>
<profileName>prodprofileName>
properties>
profile>
profiles>
mvn clean package
java -jar xxxx.jar