要学习 Spring Cloud 配置客户端,得需要一些前置知识:

  • Spring Environment
  • Spring Profiles
  • Spring Properties
  • Spring 事件监听器
  • ConfigFileApplicationListener

(一)Spring Environment
  Environment是一种在容器内以 配置(Profile) 和 属性(Properties)为模型的应用环境抽象整合。
  Spring Framework提供了两种 Environment 的实现,即:

  • 一般应用:StandardEnvironment
  • Web应用:StandardServletEnvironment

(二)Spring Profiles
  在Spring容器,Profile是一种命名的Bean定义逻辑组。一个Spring应用可以同时激活多个Profile,常见的使用场景:应用部署环境(test、stage、production)、单元测试等。
  应用程序可以通过调用 ConfigurableEnvironment 接口控制Profile 的激活,如:

  • setActiveProfiles(String… )
  • addActiveProfile(String )
  • setDefaultProfiles(String… )

(三)Spring Properties
  属性又称之为配置项,Key-Value的形式。在Spring应用中常用作占位符(Placeholder),而在API层面,Spring Framework如下抽象来表述:

  • 组合属性:PropertySources
  • 单一属性:PropertySource

  备注:关于Spring Boot有两种常见配置文件,即 application.properties 和 application.yml,他们的 加载器 分别为:

  • application.properties 或者
    application.xml:PropertiesPropertySourceLoader
  • application.yml 或者 application.yaml:YamlPropertySourceLoader

(四)Spring 事件监听器
  参见​Spring Cloud背景知识之Spring 事件/监听器模式

(五)ConfigFileApplicationListener
  在Spring Boot场景中,用于读取默认以及Profile关联的配置文件(application.properties)