1. 配置文件的格式
接口返回默认的JSON格式对于Spring应用程序的使用是完美的,因为它直接映射到Environment类中。如果您喜欢,可以通过向资源路径中添加后缀(“.yml”、“.yaml”或“.properties”)来使用与YAML或Java属性相同的数据。这对于不使用JSON结构或其提供的额外的元数据的应用程序的使用是有用的,例如,不使用Spring的应用程序可能会受益于此方法的简单性。
YAML和properties文件有一个额外的属性(由布尔类型的查询参数resolvePlaceholders提供),以说明是否需要解析Spring ${…}形式的占位符。这对于不了解Spring占位符的调用者来说是一个有用的功能。
使用YAML或properties文件式存在局限性,主要是与元数据的丢失有关。例如,JSON被构造为名称与源相同的有序列表。即使有多个源,YAML和properties文件也合并成一个map,并且原始源文件的名称丢失。同时,YAML不一定是后台存储库中YAML源的忠实呈现。它是由一个属性源列表聚合构建的,并且必须假定键的格式。
2 纯文本配置
您的应用程序可能不使用Environment类(或YAML、properties的表示格式),而是根据自己的环境需要的纯文本配置文件。配置服务器通过/{name}/{profile}/{label}/{path}接口提供这些服务,其中“name”,“profile”和“label”的含义与常规环境接口相同,但“path”是文件名(例如log.xml )。此接口定位文件的方式与环境接口相同。与properties或YAML文件相同的搜索路径。但是,不是聚合所有匹配的资源,只返回匹配的第一个。
资源定位后,使用Environment中的application name,profile和label来解析(${…})的占位符。以这种方式,资源接口与环境接口紧密集成。
profile
是用来定位文件名的。/*/development/*/logback.xml
匹配到的文件是logback-development.xml
(优先于logback.xml)
如果你不想指定
label
,可能通过添加请求参数useDefaultLabel
来指示服务器使用默认label。因此,下面是访问default
profile的例子:/sample/default/nginx.conf?useDefaultLabel
2.1 git、svn和本地后端
假如您有一个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
那么/sample/default/master/nginx.conf资源如下所示:
server {
listen 80;
server_name example.com;
}
和/sample/development/master/nginx.conf如下所示:
server {
listen 80;
server_name develop.com;
}
2.2 解密文本
默认情况下,文本文件的加密值不会被解密。要启用解密功能,设置bootstrap.[yml|properties]文件中的spring.cloud.config.server.encrypt.enabled=true 和 spring.cloud.config.server.encrypt.plainTextEncrypt=true
解密文本文件功能只支持YAML、JSON和priperties后缀的文件。
如果开启了此功能,当请求不支持的文件类型时,里面的加密值不会被解密。
Spring Cloud Config 使用说明(1) – 快速开始
Spring Cloud Config 配置中心使用说明(2) – 服务器+git库
Spring Cloud Config 配置中心使用说明(3) – 服务器+文件存储
Spring Cloud Config 配置中心使用说明(4) – 服务器+数据库存储
Spring Cloud Config 配置中心使用说明(5) – 服务器健康与安全配置
Spring Cloud Config 配置中心使用说明(6) – 服务器 配置文件格式
Spring Cloud Config 配置中心使用说明(7) – 服务器 配置变更通知
Spring Cloud Config 配置中心使用说明(8) – 客户端