15

私のプロジェクトでは、環境固有のプロパティ ファイルを使用したいと考えています。たとえば、開発で実行している場合は application.dev.properties を使用し、本番環境では application.prod.properties などを使用する必要があります。

リソース フォルダーに以下の 2 つのファイルがあります。

  1. application.properties (本番用)
  2. application.dev.properties (開発用)

各ファイルに以下のようなプロパティが 1 つあります。

製品用

server.database.host=192.168.1.1

開発者向け

server.database.host=192.168.12.125 

そして、私は以下のようなクラスを持っています

 public class DataSource {

     @Value(${server.database.host})
     String host;

上記のコードは、dev のような適切な引数を指定しても、常に prod 設定 (application.properties) ファイルを使用します。--spring.profiles.active=dev

以下は、dev プロパティ ファイルをロードするために使用しているコマンドです。

java -jar myjar.jar --spring.profiles.active=dev

また、アクティブなプロファイルが dev であることも出力しますが、常に prod db に接続します。

4

4 に答える 4

32

私が気づいたいくつかの問題:

  1. @Valueプロパティ名はStringlikeにする必要があります@Value("${server.database.host}")
  2. プロファイル固有のプロパティ ファイルはapplication-{profile}.properties、次のような形式に従う必要があります。application-dev.properties
  3. -Dlikeでプロファイルを渡してみてくださいjava -Dspring.profiles.active=dev -jar app.jar
于 2016-06-26T19:18:22.090 に答える