YAML:数据格式
-
对象(map):键值对的集合。
person:
name: zhangsan
person: {name: zhangsan}
-
数组:一组按次序排列的值
address:
- beijing
- shanghai
address: [beijing,shanghai]
-
纯量:单个的、不可再分的值
msg1: 'hello \n world'
msg2: "hello \n world"
YAML:参数引用
name: lisi
person:
name: ${name}
读取配置内容
1) @Value
2) Environment
3) @ConfigurationProperties
Profile
1) profile是用来完成不同环境下,配置动态切换功能的。
2) profile配置方式
- 多profile文件方式:提供多个配置文件,每个代表一种环境。
- application-dev.properties/yml 开发环境
- application-test.properties/yml 测试环境
- application-pro.properties/yml 生产环境
- yml多文档方式:
- 在yml中使用 — 分隔不同配置
3) profile激活方式
- 配置文件: 再配置文件中配置:spring.profiles.active=dev
- 虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
- 命令行参数:java –jar xxx.jar --spring.profiles.active=dev
内部配置加载顺序
Springboot程序启动时,会从以下位置加载配置文件:
- file:./config/:当前项目下的/config目录下
- file:./ :当前项目的根目录
- classpath:/config/:classpath的/config目录
- classpath:/ :classpath的根目录
加载顺序为上文的排列顺序,高优先级配置的属性会生效
外部配置加载顺序
通过官网查看外部属性加载顺序 https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config