私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
まず、Java プロジェクトにはさまざまな環境構成が必要であり、パッケージ化するときに、対応する構成が自動的に使用されます。では、どうすればそれを達成できるのでしょうか?
Spring Boot プロジェクトの src/main/resources ディレクトリに application.yml ファイルを作成または追加します。ここは、Spring Boot がデフォルトで構成ファイルを探す場所です。このファイルには共通の構成を追加できます。
次に、同じディレクトリに application-test.yml や application-prod.yml などのファイルを作成することもでき、Spring Boot はこれらのプロファイル固有の構成ファイルを自動的に認識します。これらのファイルでは、データベース アドレス、Redis キャッシュ アドレスなど、さまざまな環境のパラメーターを定義できます。
つまり、src/main/resources ディレクトリには、次のようなファイルがいくつか存在する可能性があります。
application.yml
application-prod.yml
application-test.yml
次に、application-test.yml と application-prod.yml を使用して、同じ構成で値が異なる 2 つの変数を宣言できます。例えば
アプリケーションテスト.yml:
mysql:
url: https://xx.test.com/mysql
アプリケーションprod.yml:
mysql:
url: https://xx.online.com/mysql
Java コードでは、この URL を動的に使用できます。
@Value("${mysql.url}")
protected String mysqlUrl;
完璧。
では、システムの実行中に、対応するプロファイル固有の .yml ファイルを自動的に使用するにはどうすればよいでしょうか?下記を参照してください
環境変数が外部ネットワークからレイヤーごとにどのようにプロジェクトに渡されるかを見てみましょう。
まず、Java プロジェクトは通常、docker によってパッケージ化されます。それでは、ドッカーから始めましょう:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
キーワード、ビルド引数 、パラメータ dc_env=test を設定します。
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
-P はプロファイルの設定を意味することに注意してください
前のステップの mvn コマンドは -P を追加しました。これはどこで使用されますか? もちろん、これは marven 設定ファイル (pom.xml) 内にあります。
<profiles>
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
<log.env>test</log.env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
<log.env>prod</log.env>
</properties>
</profile>
</profiles>
上記では、2 つの環境変数が追加されています。変数ごとにプロパティが設定されます。つまり、プロフィール.アクティブ
この値はどこで使用できるのでしょうか?
メインの application.yml ファイルで使用してください。
server:
profiles:
active: @profile.active@
前のステップの profile.active 変数の値に基づいて、使用するプロファイルを定義します。
それ以来、docker パッケージから定義された変数はメインの yml ファイルに渡されるようになりました。このファイルでは、server.profiles.active の値に関係なく、どのサブ yml 設定が使用されます。たとえば、test の場合は、application-test.yml の設定が読み込まれます。 ! !
まず、marven が最初に同期します。 同期後、環境を確認してください。
次に、ローカルでコンパイルしてパッケージ化し、-P を使用して環境変数を指定します。
最後に、実行するには、下の図の右上隅をクリックします。[アクティブ プロファイル] に、対応する環境変数 (test など) を入力します。
最後に、「実行」をクリックします。