admin 管理员组文章数量: 886992
Spring Boot yaml格式及优先级
yaml
基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
数据类型
YAML 支持以下几种数据类型:
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
示例
server:port: 8088#对象
dog1:name: 大狗age: 18#数组
key1: [value1, value2]key2:- value3- value4dog2:-name: 大狗age: 18-name: 小狗age: 19dog3: [{name: 大狗,age: 18},{name: 小狗,age: 17}]
读取配置信息
相同目录配置文件加载顺序
- 相同application文件时顺序在父项目(spring-boot-starter-parent)中有所体现:
<resources><resource><filtering>true</filtering><directory>${basedir}/src/main/resources</directory><includes><include>**/application*.yml</include><include>**/application*.yaml</include><include>**/application*.properties</include></includes></resource><resource><directory>${basedir}/src/main/resources</directory><excludes><exclude>**/application*.yml</exclude><exclude>**/application*.yaml</exclude><exclude>**/application*.properties</exclude></excludes></resource></resources>
- 若application.yml 和bootStrap.yml 在同一目录下,则bootStrap.yml 的加载顺序要高于application.yml,即bootStrap.yml 会优先被加载。
- bootstrap.yml 用于应用程序上下文的引导阶段,bootstrap.yml 由父Spring ApplicationContext加载。
- bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
- application.yml 可以用来定义应用级别的,如果搭配 spring-cloud-config 使用。
- application.yml 里面定义的文件可以实现动态替换
不同目录配置文件加载顺序按照优先级从低到高的顺序
- classes根目录下面的配置
- classes根目录下 的config文件夹下的配置
- jar包根目录配置
- jar包根目录下 的config文件夹下的配置
- 命令行执行
resources下的配置文件编译后会放在classes根目录下
java -jar springboot-c-0.0.1-SNAPSHOT.jar 读取配置时顺序(此时不会识别jar包根目录配置)
- profiel文件(2--3--4--5--6) yml--yaml--properties
- jar包同级目录./config yml--yaml--properties
- jar包同级目录./config/*/ yml--yaml--properties
- jar包同级目录 yml--yaml--properties
- classes根目录下 的config文件夹下的配置 yml--yaml--properties
- classes根目录下面的配置 yml--yaml--properties
java -jar springboot-c-0.0.1-SNAPSHOT.jar --spring.profiles.active= uat 读取配置时顺序(此时不会识别jar包根目录配置)
- profiel文件(2--3--4--5--6) yml--yaml--properties
- jar包同级目录./config yml--yaml--properties
- jar包同级目录./config/*/ yml--yaml--properties
- jar包同级目录 yml--yaml--properties
- classes根目录下 的config文件夹下的配置 yml--yaml--properties
- classes根目录下面的配置 yml--yaml--properties
java -jar springboot-c-0.0.1-SNAPSHOT.jar --spring.config.location=D:\Thing\application-uats.yaml读取的优先级最高
本文标签: Spring Boot yaml格式及优先级
版权声明:本文标题:Spring Boot yaml格式及优先级 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732356182h1534496.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论