1. 程式人生 > >《Spring Cloud Config官方文件》之提供純文字

《Spring Cloud Config官方文件》之提供純文字

原文連結

7. 提供純文字

而不是使用Environment抽象(或YAML或其他屬性格式中的替代表示形式),應用程式可能需要通用的純文字配置檔案,並且是針對其環境來定製。配置伺服器通過/{name}/{profile}/{label}/{path} 在“名稱”,“配置檔案”和“標籤”與常規環境節點具有​​相同含義的位置處提供了這些附加節點,但“路徑”是檔名(例如log.xml)。此節點的原始檔與環境節點的位置相同:使用屬性或YAML檔案相同的搜尋路徑,但不會彙總所有匹配的資源,並且只返回第一個匹配的資源。

找到資源後,正常格式(${…​})中的佔位符將使用Environment提供的應用程式名稱,配置檔案和有效的標籤來解析。通過這種方式,資源節點與環境節點緊密整合。例如,如果您擁有GIT(或SVN)儲存庫的此佈局,請執行以下操作:

application.yml
nginx.conf

這裡nginx.conf看起來是這樣的:

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

資源看起來像這樣:

server {
    listen              80;
    server_name         example.com;
}

/foo/development/master/nginx.conf像這樣:

server {
    listen              80;
    server_name         develop.com;
}

就像環境配置的原始檔一樣,“配置檔案”用於解析檔名,所以如果你想要一個特定的配置檔案,那麼/*/development/*/logback.xml將被稱為logback-development.xml

(優先logback.xml)的檔案解決。

如果您不想提供label並讓伺服器使用預設標籤,則可以提供一個useDefaultLabel請求引數。所以,上面的default配置檔案的例子可能看起來像/foo/default/nginx.conf?useDefaultLabel