7.提供纯文本
并非使用Environment抽象(或它在YAML或属性格式中的可选表示之一),你的应用程序或许需要特定于相应环境的通用纯文本配置文件。配置服务通过一个位于/{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;
}
【注意】与环境配置的源文件一样,profile用于解析文件名。因此,如果您想要一个特定于概要文件的文件,/*/development/*/logback.xml可以通过名为logback-development.xml的文件(而不是logback.xml)来解析。
【注意】如果不希望提供标签并让服务器使用默认标签,则可以提供useDefaultLabel请求参数。那么,前面的缺省概要文件示例可以是/foo/default/nginx.conf?useDefaultLabel。