一、配置文件
-
Spring Boot使用一个全局得配置文件。作用:修改SpringBoot得Zion给配置默认值
- application.properties
- application.yml
-
配置文件放在src/main/resources目录或者类路径/config下
- springboot启动会扫描一下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
-file:/config/
-file:/
-classpath:/config/
-classpath:/ - 优先级由高到低,高优先级的配置会覆盖低优先级的配置;
- Springboot会从这四个位置全部加载主配置文件;互补配置
- 还可以通过spring.config.location 来改变默认的配置文件位置
- springboot启动会扫描一下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
-
.yml是YAML(YAML Ain’t Markup Language)语言得文件,以数据为中心,比json、xml等更适合做配置文件
- http://www.yaml.org/ 参考语法规范
- YAML 配置例子
1 | server: |
- 全局配置文件得可以对一些默认配置值进行修改
二、YAML 语法:
1、基本语法
- k:(空格)v:表示一堆键值对(空格必须有):
- 以空格得缩进来控制层级关系;只要是左对齐得一列数据,都是同一个层级的
1 | server: |
- 属性和值也是大小写敏感
2、值得写法
字面量:普通得值(数字,字符串,布尔)
- **k: v:**字面直接来写;
- 字符串默认不用加上单引号或者双引号;
- “”:双引号;不会转义字符串里面得特殊字符;特殊字符会作为本身想表示得意思
- name:“zhangsan \n lisi”:输出;zhangsan 换行 lisi
- ’ ':单引号;会转义特殊字符,特殊字符最终只会是一个普通得字符串数据
- name:“zhangsan \n lisi”:输出;zhangsan \n lisi
对象、Map(属性和值)(键值对):
- **k: v:**在下一行来写对象的值和属性的关系;注意缩进
- 对象还是k:v的方式
- v:(一定要加空格)
1 | friends: |
行内写法:
1 | friends:(lastName:zhangsan,age:18) |
数组(List、Set):
用 - 值表示数组中的一个元素
1 | pets: |
行内写法
1 | pets:[cat,dog,pig] |
- 如果使用配置文件赋值需要@ConfigurationProperties(prefix=“对象”)
- 同时pom中导入配置文件处理器
1 | <dependency> |
- 占位符${引用其他}
Profile
1、多Profile文件
- 我们在主配置文件编写的时候,文件名可以是application-{profile}.properties.yml
- 默认使用application.properties.yml
2、yml支持多文档块方式
- 利用 —分割块
1 | server: |
- 结果:激活8084
#####3、激活指定profile
- 在配置(application.properties.yml)文件中指定 Spring.profiles.active=XXX
- 命令行:
- 运行加参数–spring.profiles.active=XXX
- 虚拟机参数;
- -Dspring.profiles.active=dev