服务纯文本

优质
小牛编辑
139浏览
2023-12-01

您的应用程序可能需要通用的纯文本配置文件,而不是使用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;
}

/foo/development/master/nginx.conf这样:

server {
  listen       80;
  server_name    develop.com;
}
注意就像环境配置的源文件一样,“配置文件”用于解析文件名,因此,如果您想要一个特定于配置文件的文件,则/*/development/*/logback.xml将由一个名为logback-development.xml的文件解析(优先于logback.xml)。