7. 提供纯文本
而不是使用Environment
抽象(或YAML或其他属性格式中的替代表示形式),应用程序可能需要通用的纯文本配置文件,并且是针对其环境来定制。配置服务器通过/{name}/{profile}/{label}/{path}
在“名称”,“配置文件”和“标签”与常规环境节点具有相同含义的位置处提供了这些附加节点,但“路径”是文件名(例如log.xml
)。此节点的源文件与环境节点的位置相同:使用属性或YAML文件相同的搜索路径,但不会汇总所有匹配的资源,并且只返回第一个匹配的资源。
找到资源后,正常格式()中的占位符将使用Environment
提供的应用程序名称,配置文件和有效的标签来解析。通过这种方式,资源节点与环境节点紧密集成。例如,如果您拥有GIT(或SVN)存储库的此布局,请执行以下操作:
application.yml nginx.conf
这里nginx.conf
看起来是这样的:
server { listen 80; 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
。