2016-04-19 11 views
4

安定したアプリケーションサーバーを移行して、Spring Cloud Configサーバーから構成を取得しようとしています。各アプリケーションには{my-app}.ymlというファイルがあり、設定ファイルには{my-app}-{profile}.ymlという名前のファイルまたは複数のプロファイルのYAML文書を使用できます。各アプリケーションごとに環境ごとに異なる設定があり、別のプロファイルにはspring.profiles.includeいくつかの種類の継承を提供する - これまでのところ、とても良い。Spring Cloud Configサーバーで複数のアプリケーションの共通設定を含める

同じアプリケーションののプロファイルのみを含めることができます。また、環境ごとに多くの設定を共有する同じ設定サーバーからいくつかのアプリケーションを設定しています。例えばほとんどすべてが同じデータソース設定を使用します同じデータベースに接続し、同様にメッセージング、キャッシュなどに接続します。それは複製された設定がたくさんあり、変更が必要な場所がたくさんあります。まさにSpring Cloud Configが避けようとしているものです!

プロファイルを介して(または他の方法で)共有コンフィグプロパティを「インクルード」する方法はありますか?アプリ全体で、Spring Cloudコンフィグレーションサーバの?以下@vladsflによって正解に加えて

更新

、あなたはファイルシステムやクラスパスの代わりに、Gitのレポから設定を提供するためのconfigサーバ上でネイティブのプロファイルを使用している場合は注意してください、 configサーバーはapplication.ymlとそのプロファイルの変形をそれ自身で使用しますが、他のアプリケーションにそれらを提供することを拒否します。解決策は、spring.cloud.config.server.native.searchLocationsを使用して、別の場所からサービス設定を取得することです。

答えて

6

はい。設定サーバーにapplication.ymlまたはapplication-<profile>.ymlを設定すると、この設定サーバーを使用しているすべてのアプリケーションはすべてapplication.ymlのすべての設定を継承します。特定のプロファイルで実行されるすべてのアプリケーションは、application-<profile>.ymlの設定を継承します。

+0

'application-.yml'はそれを表示する奇妙な方法のようです。私は' application- .yml'と言っています。また、プロパティで動作します。 – spencergibb

+1

ありがとう - これは私のために働いていなかった理由は、設定サーバーで "ネイティブ"プロファイルを使用していて、明示的にapplication - *。{yml | properties}を除外しているgitリポジトリの代わりにクラスパスからロードしているためですサービスされた設定!あなたの答えは私がそれを理解するのを助けました。 – Zirzirikos

+0

@spencergibb。私はタイプをしましたが、私はそれが取り除かれたと思います – vladsfl

関連する問題