7. 提供纯文本
您的应用程序可能需要使用针对其环境量身定制的通用纯文本配置文件,而不是使用Environment
抽象(或使用 YAML 或属性格式的另一种表示形式)。 Config Server 通过位于/{name}/{profile}/{label}/{path}
的附加端点来提供这些端点,其中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;
}
Note
与用于环境配置的源文件一样,profile
用于解析文件名。因此,如果要使用特定于配置文件的文件,则可以通过名为logback-development.xml
(优先于logback.xml
)的文件来解析/*/development/*/logback.xml
。
Note
如果不想提供label
并让服务器使用默认标签,则可以提供useDefaultLabel
请求参数。因此,default
配置文件的前面示例可能是/foo/default/nginx.conf?useDefaultLabel
。