你的應用程序可能須要根據其環境定製的通用純文本配置文件,而不是使用Environment
抽象(或YAML或屬性格式中的其中一種替表明示)。Config Server經過/{name}/{profile}/{label}/{path}
中的附加端點提供這些,其中name
、profile
和label
與常規環境端點具備相同的含義,但path
是文件名(例如log.xml
)。此端點的源文件的定位方式與環境端點相同,相同的搜索路徑用於屬性和YAML文件,可是,不是聚合全部匹配的資源,而是僅返回要匹配的第一個。nginx
找到資源後,經過使用提供的應用程序名稱、配置文件和標籤的有效Environment
來解析正常格式(${…}
)的佔位符,經過這種方式,資源端點與環境端點緊密集成,請考慮如下GIT或SVN存儲庫示例:spring
application.yml nginx.conf
其中nginx.conf
看起來像這樣:segmentfault
server { listen 80; server_name ${nginx.server.name}; }
application.yml
像這樣:服務器
nginx: server: name: example.com --- spring: profiles: development nginx: server: name: develop.com
/foo/default/master/nginx.conf
資源可能以下:app
server { listen 80; server_name example.com; }
/foo/development/master/nginx.conf
是這樣的:code
server { listen 80; server_name develop.com; }
與環境配置的源文件同樣,profile
用於解析文件名,所以,若是你須要特定配置文件,/*/development/*/logback.xml
能夠被解析爲名爲logback-development.xml
的文件(優先於logback.xml)。
若是你不想提供label
並讓服務器使用默認標籤,則能夠提供useDefaultLabel
請求參數,所以,default
配置文件的前面示例多是/foo/default/nginx.conf?useDefaultLabel
。