要学习 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)