spring-cloud-config-server——Environment Repository

参考资料:

  https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.4.0.RELEASE/single/spring-cloud-config.html

  http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_environment_repository

Environment Repository——环境库

  你要在哪里存储Config Server的配置数据呢?管理这种行为的策略是为Enviroment对象提供服务的EnvironmentRepository。这个Enviroment是Spring Environment域的一个浅层副本(包括propertySources作为主要功能)。Environment资源由三个变量参数化:

  1. {application} maps to "spring.application.name" on the client side;——{application}映射到客户端的"spring.application.name";
  2. {profile} maps to "spring.profiles.active" on the client (comma separated list);——{profile}映射到客户端的 "spring.profiles.active"(逗号分割列表);
  3. {label} which is a server side feature labelling a "versioned" set of config files.——{label}是服务端功能,标记"版本化"的配置文件集。

  版本库实现通常像Spring Boot应用程序一样从“spring.config.name”加载配置文件,等同于{application}参数,而“spring.profiles.active”等同于{profiles}参数。配置文件的优先级规则也与常规的Boot应用程序中的规则相同:活动配置文件优先于默认配置,并且如果有多个配置文件,则最后一个配置文件将胜出(如向Map添加条目)。

  例如,客户端应用程序具有此引导配置:

  bootstrap.yml

spring:
  application:
    name: foo
  profiles:
    active: dev,mysql

  (通常使用Spring Boot应用程序,这些属性也可以设置为环境变量或命令行参数)

  如果存储库是基于文件的,则服务器将从application.yml(所有客户端之间共享)和foo.yml(以yoo.yml优先)创建一个Environment。如果YAML文件中有指向Spring配置文件的文档,那么这些文件将以更高的优先级(按列出的配置文件的顺序)应用,如果有特定于配置文件的YAML(或属性)文件,则这些文件的优先级高于默认值。较高的优先级转换为Environment之前列出的PropertySource.(这些规则于独立的Spring Boot应用程序相同)。

posted @ 2017-12-05 21:56  Adina~  阅读(1205)  评论(0编辑  收藏  举报