SpringBoot はプロファイルを使用して、一般的な開発環境、テスト環境、運用環境などのさまざまな環境で構成の切り替えを実装します。
SpringBoot で一般的に使用される構成ファイルには、プロパティ ファイルと yml ファイルという 2 つの主なタイプがあります。プロパティ ファイルの場合は、主に複数のプロファイル構成ファイルを通じて実装され、yml ファイルの場合は、主に複数のフラグメントによって実装されます (構成フラグメントは、yml ファイル内の 3 つの水平バーに分割されます)。
実際の作業ではプロファイルの方が便利です SpringBoot プログラムを開発したら、最終的には jar パッケージにパッケージ化して使用します 設定ファイルを外部に置き、外部ファイルにプロファイル名を指定することができます構成ファイル、したがって、どの環境 (開発環境、テスト環境、運用環境) を使用するかを決定する構成パラメーター。
このブログのデモでは 2 つの SpringBoot プロジェクトを構築し、それぞれ 2 つのプロファイルの使用方法を示します。
Demo1 は複数のプロパティ ファイルを通じて実装され、Demo2 は 1 つの yml ファイルを通じて実装されます。構築結果は次のとおりです。作成したクラスがスタートアップ クラスが配置されているパッケージまたはサブパッケージの下にある場合、SpringBoot はスタートアップ クラスが配置されているパッケージの下のすべてのクラスをスキャンするため、スタートアップ クラスでスキャン パッケージを構成する必要はありません。デフォルトではそのサブパッケージ ファイル内の注釈。したがって、デモの便宜上、後続のデモでは、スタートアップ クラスが配置されているパッケージまたはサブパッケージの下にクラス ファイルを書き込みます。
同じコードの TestController クラスは、パラメーターなしのインターフェイス アクセスを提供するために両方のデモで記述されています。返される結果は、現在有効なプロファイル名と、プロファイル構成ファイルで構成されているポート番号です。デモ テスト中に結果を確認するには、IDEA コンソールに出力された情報を直接確認して結果を確認することもできます。 TestController クラスの具体的な内容は以下のとおりです:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired private Environment env; @RequestMapping("/getport") public String getPort() { StringBuilder sb = new StringBuilder(); String[] activeProfiles = env.getActiveProfiles(); sb.append("启动的 profile 名称为:").append(activeProfiles[0]); sb.append("<br/>"); String portValue = env.getProperty("server.port"); sb.append("启动的端口为:").append(portValue); return sb.toString(); } }2. マルチファイル設定方法 Demo1 の SpringBoot プログラムは設定ファイルとしてプロパティ ファイルを使用するため、マルチファイル構成メソッドはプロファイルを実装するために使用されます。 SpringBoot の設定ファイルは application で始まる必要があります。プロパティ ファイルについては、アプリケーション プロファイル名.properties の命名形式を使用して、プロファイルのマルチ環境構成を実装します。Demo1 では application-dev.properties が使用されます。 、application -test.properites、application-pro.properties の 3 つのファイルは、開発環境、テスト環境、本番環境の設定ファイルを表します。設定内容は以下の通りです。便宜上、ここでは SpringBoot の起動ポートのみ設定しています。デモンストレーション:
# application-dev.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 dev 表示 profile 配置文件的名称 server.port=8081 # application-test.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 test 表示 profile 配置文件的名称 server.port=8082 # application-pro.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 pro 表示 profile 配置文件的名称 server.port=8083
# application-pro.properties 配置内容 # 本 Demo 中编写了多个以 application 开头的配置文件 # 通过以下配置项指定 profile 名称,设置所要启动的配置文件 spring.profiles.active=test次に、Demo1 の SpringBoot プログラムを開始します。上記の例では、プロファイルは test であり、起動ポートは 8082 に相当するため、TestController で提供される localhost:8082/getport インターフェイスにアクセスして、プロファイルの構成情報を確認します。 3. マルチフラグメント設定方法Demo2 の SpringBoot プログラムは設定ファイルとして yml ファイルを使用するため、プロファイルの実装にはマルチフラグメント設定方法が使用されます。 次に示すように、application.yml で 3 本の水平バー (---) を使用して構成フラグメントを区切ります。
# 本 Demo 中只编写了一个 application.yml 的配置文件 # 通过三个横杠(---)来分隔开 3 种配置文件 # 通过 spring.config.activate.on-profile 设置 profile 的名称 # 通过以下配置项指定 profile 名称,设置所要启动的配置文件 spring: profiles: active: pro --- server: port: 9091 spring: config: activate: on-profile: dev --- server: port: 9092 spring: config: activate: on-profile: test --- server: port: 9093 spring: config: activate: on-profile: pro
D:\javacode\demo1> java -jar .\demo1-0.0.1-SNAPSHOT.jar --spring.config.location=.\application.properties
D:\javacode\demo2> java -jar .\demo2-0.0.1-SNAPSHOT.jar --spring.config.location=.\application.ymlapplication.yml で構成されたプロファイルは pro であるため、ポート 9093 が開始されます。
以上がSpringBootはProfileを通じて異なる環境での構成切り替えをどのように実現しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。