Request syntax:
GET /{application}/{profile}[/{label}] GET /{application}-{profile}.yml GET /{label}/{application}-{profile}.yml GET /{application}-{profile}.properties GET /{label}/{application}-{profile}.properties
-
Profile is Spring Profile. Default {profile} is default.
-
Label is Git branch. Default {label} is master.
Storage layout.
With altered searchPaths
in bootstrap.yaml
:
spring: cloud: config: server: git: searchPaths: "{application}"
for hierarchy:
bash# tree ├── application.yaml ├── application-dev.yaml ├── my.yaml ├── my-dev.yaml ├── my │ ├── application.yaml │ ├── application-dev.yaml │ ├── my.yaml │ └── my-dev.yaml
on request http://localhost:8888/unknown/default
Config Server returns:
propertySources.1.name: file://c:/home/devel/config/application.yaml
for http://localhost:8888/unknown/dev
returns:
propertySources.1.name: file://c:/home/devel/config/application-dev.yaml propertySources.2.name: file://c:/home/devel/config/application.yaml
for http://localhost:8888/my/default
returns:
propertySources.1.name: file://c:/home/devel/config/my/my.yaml propertySources.2.name: file://c:/home/devel/config/my/application.yaml propertySources.3.name: file://c:/home/devel/config/my.yaml propertySources.4.name: file://c:/home/devel/config/application.yaml
for http://localhost:8888/my/dev
returns:
propertySources.1.name: file://c:/home/devel/config/my/my-dev.yaml propertySources.2.name: file://c:/home/devel/config/my/application-dev.yaml propertySources.3.name: file://c:/home/devel/config/my-dev.yaml propertySources.4.name: file://c:/home/devel/config/application-dev.yaml propertySources.5.name: file://c:/home/devel/config/my/my.yaml propertySources.6.name: file://c:/home/devel/config/my/application.yaml propertySources.7.name: file://c:/home/devel/config/my.yaml propertySources.8.name: file://c:/home/devel/config/application.yaml
With altered searchPaths
to:
spring: cloud: config: server: git: searchPaths: - "{application}" - "."
for http://localhost:8888/my/dev
Spring Cloud Server returns:
propertySources.1.name: file://c:/home/devel/config/my-dev.yaml propertySources.2.name: file://c:/home/devel/config/application-dev.yaml propertySources.3.name: file://c:/home/devel/config/my/my-dev.yaml propertySources.4.name: file://c:/home/devel/config/my/application-dev.yaml propertySources.5.name: file://c:/home/devel/config/my.yaml propertySources.6.name: file://c:/home/devel/config/application.yaml propertySources.7.name: file://c:/home/devel/config/my/my.yaml propertySources.8.name: file://c:/home/devel/config/my/application.yaml
With altered searchPaths
to:
spring: cloud: config: server: git: searchPaths: - "." - "{application}"
for http://localhost:8888/my/dev
Spring Cloud Server returns:
propertySources.1.name: file://c:/home/devel/config/my/my-dev.yaml propertySources.2.name: file://c:/home/devel/config/my/application-dev.yaml propertySources.3.name: file://c:/home/devel/config/my-dev.yaml propertySources.4.name: file://c:/home/devel/config/application-dev.yaml propertySources.5.name: file://c:/home/devel/config/my/my.yaml propertySources.6.name: file://c:/home/devel/config/my/application.yaml propertySources.7.name: file://c:/home/devel/config/my.yaml propertySources.8.name: file://c:/home/devel/config/application.yaml
Test file looks like (can help inspecting priority of config order):
find . -name .git -prune -o -type f -print | while read f; do echo $f; cat $f; done ./application-dev.yaml prop: application-dev ./application.yaml prop: application-default ./my/application-dev.yaml prop: my/application-dev ./my/application.yaml prop: my/application-default ./my/my-dev.yaml prop: my/my-dev ./my/my.yaml prop: my/my-default ./my-dev.yaml prop: my-dev ./my.yaml prop: my-default