2016-03-29 6 views
3

開発者がいくつかの設定プロパティをローカルで上書きできるようにしたい。 (Googleドライブで作業し、誰もが自分のアカウントでテストしなければならないとしましょう)。 コマンドラインを使用してプロパティをオーバーライドする必要はありません(すべてのIDE設定とすべてのCLI実行で設定する必要があるため)。spring boot:アプリケーション設定に新しいymlファイルを追加する

私が欲しいのは、アプリケーションはすべての標準的なスプリングブート設定ファイル(application.ymlなど)を使用する必要があります。 local.yml(クラスパス上)またはuser.home内のファイル。これらの追加ファイルは他の設定よりも優先される必要があります。

新しいymlリソースを追加して正しく注文する方法を教えてください。

編集:私は春のデフォルトの注文と場所を知っています。質問Spring Boot Documentation : Application property filesから新しいもの

答えて

0

を追加することについてです:

SpringApplicationは次の場所にapplication.propertiesファイルからプロパティをロードし、春の環境に追加されます:

  • A/configサブディレクトリ現在のディレクトリの。
  • カレントディレクトリ
  • クラスパス/コンフィグパッケージ
  • クラスパス・ルート

は、リストは(リストに高い場所で定義されたプロパティが低い場所で定義されたものを上書きする)の優先順位によって順序付けされます。

これはまたyamlにも当てはまります。だから皆さんは、configディレクトリの下のspringブートjarを実行するディレクトリの下にapplication.ymlを追加できます。

また、あなたはspring.config.locationを使用することによってたい場合local.ymlになるように追加の設定ファイルをカスタマイズすることができます。しかし

--spring.config.location=classpath:/application.yml,classpath:/local.yml

注:

spring.config.nameとspring.config.locationは、どのファイルをロードする必要があるかを判断するために非常に早い段階で使用されるため、環境プロパティ(通常はOSのenv、システムプロパティまたはコマンドlin eの引数)。

+0

を私はなぜコマンドラインプロパティ – piotrek

+0

@piotrekを使用したくないと述べましたか? IDEで使用できないというあなたの主張は、私にとっては奇妙なようです。なぜなら、環境変数や 'spring.config.location'のようなプロパティもIDE内で簡単に設定できるからです。 – g00glen00b

+1

それは私が "できない"ことではありません。私はちょうど "したくない"。すべての開発者が単一のコマンドライン呼び出しごとに、単一の実行時設定ごとに設定する必要があります。アプリケーションを追加オプションなしで動作させたいと思っていて、既存の設定ファイルを自動的に取得するはずです – piotrek

1

あなたが設定ファイルの場所について春ブーツのドキュメント(http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config)で見れば、あなたは彼らが(とりわけ)以下の場所からロードされていることを、見ることができます。

  • プロフィールパッケージ化されたjar以外のアプリケーションプロパティ(application- {profile} .propertiesとYAMLバリアント)
  • パッケージ化されたjar以外のアプリケーションプロパティ(application.propertiesとYAMLバリアント)カレントディレクトリの

    があります。この場合

  • カレントディレクトリ

現在のディレクトリには、Javaプロセスの作業ディレクトリ(通常はJARが配置されているディレクトリ、またはIDEで実行されているとした場合には、通常、プロジェクトのルートフォルダを意味し、 )。そのため、開発者はその場所に独自の設定ファイルを置くことができ、自動的にロードされます(JAR内のプロパティが上書きされます)。そのファイルを.gitignore(または.svnignoreまたは...)に追加すると、誤ってリポジトリにコミットされることはありません。春・ブートアプリケーションでの外部設定ファイルから設定を提供するために、

0

-

-Dspring.config.location=file:/home/vfroot/Workspace/project/MODULE_HOME/application.yaml 

このコマンドは、端末で実行することができます:

はMVN -Dspring.config.location をクリーンインストール=ファイル:/home/vfroot/Workspace/MODULE_HOME/application.yaml

またはEclipseに設定する必要がありますVM argument。また、アクティブなプロファイルを設定するには

-Dspring.profiles.active=dev 
関連する問題