3

Spring Bootを使用してマイクロサービスを開発しました。このサービスは、Springクラウド設定サーバーを使用してプロパティを取得しています。このマイクロサービスは、ヘッダ内のバージョンを受け入れ、バージョンに基づいて、適切な機能を実行する。私のgithubリポジトリには、私は2つの支店、各バージョン1があります。Spring Cloud Config Server - プレースホルダ・ラベル

アプリケーション名+プロフィール+ラベル

私.ymlファイルにラベルの代わりにプレースホルダを持ってする方法はあります - サービスは、通常のプロパティを取得するために設定サーバに以下の情報を送信しますか?私はラベルが動的にv1に設定されるようにしたい、もし他のヘッダのv1を見るなら。

EDIT:

私はしかし、私は値が着信要求から動的

答えて

0

を置換することができるかわからない、セクション「GitのURIでプレースホルダ」の下で、この文書(http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html)内のプレースホルダへの参照を参照してください春・クラウド・コンフィグ・サーバは、プロパティファイルに直接照会することができ、いくつかのREST APIが利用できるようになります:

$ hostname:port/{label}/{name}-{profiles}.properties] 

あなたは動的に任意のラを使用することができますgitの既存のラベルと一致している限り、あなたが選んだベルを選択します。 application.propertiesを取得する例えば

は、Gitのにv1標識:

$ http://${hostname}:${port}/v1/application.properties 

構成サーバのREST API:

  • /{名}/{プロファイル}/{ラベル:. *
  • /{label}/{name}-{profiles}.properties
  • /{name}-{profiles}.json
  • /{label}/{name}-{profiles}.json
  • /{label}/{name}-{profiles}.yml
  • /{ラベル}/{名} - {プロファイル}。 YAML
  • /{name}-{profiles}.yml
  • /{name}-{profiles}.yaml
  • /{名}/{プロファイル:. [^ - ]。}
  • /{name}-{profiles}.properties
  • /{名}/{プロファイル}/{ラベル}/**

私はサンプルspring-cloud-serverプロジェクトを試しgitのプロパティファイル

ラベルV1

http://localhost:8888/v1/application-remote.properties 
> testproperty: remotevalue-v1 

ラベルV2

http://localhost:8888/v2/application-remote.properties 
> testproperty: remotevalue-v2 
Iは、(Iプロファイル remoteを使用)各ラベルのファイルに異なる値でGitのタグを v1v2を適用しました

ラベルなし

http://localhost:8888/application-remote.properties 
> testproperty: remotevalue-master 

Javaコード

私はそれを試していないが、私はあなたにも注入して、コントローラを呼び出す代わりに、直接のHTTPリクエストを行うクラウド・コンフィグ・サーバーのJava APIを(使用することができたとし):

@Autowired 
EnvironmentController environmentController; 
... 

Environment labelled = environmentController.labelled("application", "remote", "v1"); 
Map<?, ?> keyValues = labelled.getPropertySources().get(0).getSource(); 
関連する問題