此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Cloud Config 4.3.0! |
环境存储库
您应该在哪里存储配置服务器的配置数据?
管理这种行为的策略是EnvironmentRepository
服务Environment
对象。
这Environment
是 Spring 中域的浅层副本Environment
(包括propertySources
作为主要特征)。
这Environment
资源由三个变量参数化:
-
{application}
,映射到spring.application.name
在客户端。 -
{profile}
,映射到spring.profiles.active
在客户端上(逗号分隔列表)。 -
{label}
,这是一个服务器端功能,标记了一组“版本化”配置文件。
存储库实现通常表现得像 Spring Boot 应用程序,从spring.config.name
等于{application}
参数,以及spring.profiles.active
等于{profiles}
参数。
配置文件的优先级规则也与常规 Spring Boot 应用程序中的相同:活动配置文件优先于默认值,如果有多个配置文件,则最后一个优先(类似于将条目添加到Map
).
以下示例客户端应用程序具有此引导配置:
spring:
application:
name: foo
profiles:
active: dev,mysql
(与 Spring Boot 应用程序一样,这些属性也可以由环境变量或命令行参数设置)。
如果存储库是基于文件的,则服务器会创建一个Environment
从application.yml
(在所有客户端之间共享)和foo.yml
(与foo.yml
优先)。
如果 YAML 文件中包含指向 Spring 配置文件的文档,则这些文档将以更高的优先级应用(按列出的配置文件的顺序)。
如果存在特定于配置文件的 YAML(或属性)文件,则这些文件的应用优先级也高于默认值。
更高的优先级转换为PropertySource
在前面的Environment
.
(这些相同的规则适用于独立的 Spring Boot 应用程序。
您可以设置spring.cloud.config.server.accept-empty
自false
以便 Server 在找不到应用程序时返回 HTTP 404 状态。默认情况下,此标志设置为true
.
您不能放置spring.main.* 远程中的属性EnvironmentRepository .这些属性用作应用程序初始化的一部分。 |