环境仓库

您应该将配置数据存储在 Config Server 的何处?管理此行为的策略是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 应用程序一样,这些属性也可以通过环境变量或命令行参数设置)。

如果仓库是基于文件的,服务器会从application.yml(所有客户端共享)和foo.ymlfoo.yml优先)创建Environment。如果 YAML 文件中包含指向 Spring 配置文件的文档,则这些配置文件将以更高的优先级应用(按列出的配置文件顺序)。如果有特定于配置文件的 YAML(或属性)文件,这些文件也以比默认值更高的优先级应用。更高的优先级意味着PropertySourceEnvironment中列出得更早。(这些规则在独立的 Spring Boot 应用程序中也适用。)

您可以将spring.cloud.config.server.accept-empty设置为false,这样如果找不到应用程序,服务器将返回 HTTP 404 状态。默认情况下,此标志设置为true

您不能将spring.main.*属性放置在远程EnvironmentRepository中。这些属性在应用程序初始化过程中使用。
© . This site is unofficial and not affiliated with VMware.