2016-04-06 18 views
6

私は、Springクラウド設定サーバーを使用して、プロジェクトで使用されるすべてのプロパティファイル設定を集中管理します。 私は以下の使用してローカルファイルシステムから設定ファイルを使用してみましたし、それが正常に動作します:ローカルファイルシステムとgitリポジトリの両方からのspring cloud configプロパティ

spring.profiles.active=native 
spring.cloud.config.server.native.searchLocations=file://${HOME}/Documents/test-config/cloud-config-properties/ 

私も使ってGitのレポを使用:spring.cloud.config.server.git.uri=ssh://xxxxxx.com:7999/test/cloud-config-properties.git

私はこの中の組み合わせを使用してみたいです私のプロジェクト。 例 - dev/testプロファイル用 - 私はローカルファイルシステムから使用したいですし、生産のために - 私はGitリポジトリを使いたいと思います。 configサーバーアプリケーションのapplication.propertiesにgit uriプロファイルとnativeプロファイルの両方を有効にしました。しかし、プロパティは常にローカルファイルシステムから取得されます。これは可能ですか?

+0

現在、両方を同時に行うことはできません。 – spencergibb

+0

@spencergibb - Ok。ありがとうございました! –

答えて

2

ただし、サポートされていませんが、回避策があります。あなたは、(コンフィグサーバで)プロパティを設定することによって、それがリモートサーバーから取り出したファイルを保存しているコンフィギュレーションサーバのためのbasedirを定義することができます。

spring.cloud.config.server.git.basedir=<your_dir> 

あなたがドッキングウィンドウで作業している場合は、あなたをこのディレクトリをホストファイルシステムにマップできます。

ここに入力したファイルは、リクエスト内のアプリケーション/プロファイルのいずれかと一致する場合は、設定サーバーによって取得されます。たとえば、あなたがそこにファイルを置くapplication-dynamic.propertiesと呼ばれ、すべてのクライアントが

spring.profiles.active=systesting,dynamic 

この方法であなたはapplication-dynamic.propertiesに入れば、すべてが無効になります例えば、最後のプロファイルのような動的使うかもしれませんあなたの設定レポで定義されているものは何でも。

ただし、configuartionサーバの起動後にファイルを追加する必要があることは、起動時にこのフォルダが削除されるためです。

生産現場でこれを行うのは良い方法ではありませんが(たとえば、再起動するとファイルが削除されます)、test/devの場合はこれが最適です。