spring-cloud-config-server は、いくつかの REST API を利用できるようにし、プロパティ ファイルを直接クエリできるようにします。
$ hostname:port/{label}/{name}-{profiles}.properties]
git の既存のラベルと一致する限り、任意のラベルを動的に使用できます。
たとえば、gitapplication.properties
でラベル付けされた を取得するには:v1
$ http://${hostname}:${port}/v1/application.properties
構成サーバー REST API:
- /{name}/{profiles}/{label:.*
- /{ラベル}/{名前}-{プロファイル}.properties
- /{name}-{profiles}.json
- /{ラベル}/{名前}-{プロファイル}.json
- /{ラベル}/{名前}-{プロファイル}.yml
- /{ラベル}/{名前}-{プロファイル}.yaml
- /{名前}-{プロファイル}.yml
- /{name}-{profiles}.yaml
- /{名前}/{プロファイル:. [^-]。}
- /{name}-{profiles}.properties
- /{名前}/{プロフィール}/{ラベル}/**
spring-cloud-server
git でプロパティ ファイルを使用してサンプル プロジェクトを試しました。git タグを適用し、v1
各v2
ラベルのファイルに異なる値を適用しました (プロファイルを使用しましたremote
)。
ラベル v1 :
http://localhost:8888/v1/application-remote.properties
> testproperty: remotevalue-v1
ラベル v2 :
http://localhost:8888/v2/application-remote.properties
> testproperty: remotevalue-v2
ノーラベル:
http://localhost:8888/application-remote.properties
> testproperty: remotevalue-master
Java コード
私は試していませんが、cloud-config-server の Java API を使用することもできると思います (http 要求を実行する代わりに、コントローラーを直接挿入して呼び出します)。
@Autowired
EnvironmentController environmentController;
...
Environment labelled = environmentController.labelled("application", "remote", "v1");
Map<?, ?> keyValues = labelled.getPropertySources().get(0).getSource();