所有的应用都存在配置,比较常见就是以配置文件的形式出现,比如:SpringBoot
应用中的 application.properties
或者 application.yaml
。
配置有一个明显的特点就是键值对,配置并不局限于配置文件,只要是键值对形式的都可以作为配置使用,比如:启动命令中可以通过 -D
携带配置,甚至内存中的 Map
也可以作为配置。
每一个出现配置的地方,可以认为是一个配置源,一个应用中可以出现多个配置源。不同配置源中的配置可能存在重复的现象,所以多个配置源之间需要有一个优先级。
索引
PropertySource - 配置源
Spring
抽象了一个 PropertySource
抽象类用于表示配置源,配置源包含两个元素:
- 名字(name),名字是配置源的唯一标识,多个配置源通过名字进行区分。
- 源(source),存储配置的数据结构,可以是
Map
、Properties
或者其它任何可以存储键值对的数据结构。
public abstract class