7. 提供纯文本
而不是使用
Environment
抽象(或YAML或其他属性格式中的替代表示形式),应用程序可能需要通用的纯文本配置文件,并且是针对其环境来定制。配置服务器通过/{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
)的文件解决。如果您不想提供label并让服务器使用默认标签,则可以提供一个
useDefaultLabel
请求参数。所以,上面的default
配置文件的例子可能看起来像/foo/default/nginx.conf?useDefaultLabel
。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/98429.html