ホームページ > データベース > mysql チュートリアル > Spring Boot で複数の環境にわたってデータベース資格情報を動的に管理するにはどうすればよいですか?

Spring Boot で複数の環境にわたってデータベース資格情報を動的に管理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-10 10:42:11
オリジナル
291 人が閲覧しました

How Can I Manage Database Credentials Dynamically in Spring Boot Across Multiple Environments?

Spring Boot の application.properties で環境変数を使用する

複数の環境 (ローカル、CI/CD、運用環境) にわたって MySQL を利用する Spring Boot アプリケーションを開発する場合、データベース資格情報を動的に処理するために不可欠です。

問題:

application.properties では、一般的なアプローチは MySQL 情報をハードコーディングすることです。ただし、各環境には独自のデータベース構成がある可能性があるため、異なる環境でプロジェクトを実行する場合に問題が発生します。

提案された解決策:

この問題に対処するには、各環境に適切な値を持つシステム環境変数を作成することをお勧めします。これらの環境変数を application.properties で使用して、データ ソース フィールドを動的にできます。

環境変数を使用する手順:

  1. システム環境変数の作成:
    次のシステム環境変数を作成しますMySQL用構成:

    • OPENSHIFT_MYSQL_DB_HOST
    • OPENSHIFT_MYSQL_DB_PORT
    • OPENSHIFT_MYSQL_DB_USERNAME
    • OPENSHIFT_MYSQL_DB_PASSWORD
  2. アクセス環境変数:
    Java コード内の環境変数にアクセスするには、System.getenv() メソッドを使用します。
  3. 環境変数を application.properties に組み込みます:
    application.properties 内で、ハードコードされた値を環境に置き換えます。変数:

    1

    2

    3

    spring.datasource.url = ${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/"nameofDB"

    spring.datasource.username = ${OPENSHIFT_MYSQL_DB_USERNAME}

    spring.datasource.password = ${OPENSHIFT_MYSQL_DB_PASSWORD}

    ログイン後にコピー

代替アプローチ:

もう 1 つの推奨されるアプローチは、Spring のプロファイル固有のプロパティを使用することです。環境変数 spring.profiles.active を宣言すると、Spring はアクティブなプロファイルに基づいて、対応するプロパティ ファイルを自動的に読み取ることができます。例:

  • ローカル開発用の application-local.properties
  • CI/CD 環境用の application-ci.properties
  • 本番用の application-production.properties

このアプローチでは、application.properties ファイルは変更されませんが、環境固有のファイルになります。構成は、プロファイル固有のプロパティ ファイルで定義されます。

以上がSpring Boot で複数の環境にわたってデータベース資格情報を動的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート