7. 提供纯文本

您的应用程序可能需要使用针对其环境量身定制的通用纯文本配置文件,而不是使用Environment抽象(或使用 YAML 或属性格式的另一种表示形式)。 Config Server 通过位于/{name}/{profile}/{label}/{path}的附加端点来提供这些端点,其中nameprofilelabel与常规环境端点具有相同的含义,但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;
}

Note

与用于环境配置的源文件一样,profile用于解析文件名。因此,如果要使用特定于配置文件的文件,则可以通过名为logback-development.xml(优先于logback.xml)的文件来解析/*/development/*/logback.xml

Note

如果不想提供label并让服务器使用默认标签,则可以提供useDefaultLabel请求参数。因此,default配置文件的前面示例可能是/foo/default/nginx.conf?useDefaultLabel