1.格式
文件后缀:
- .yml(主流)
- .yaml
注意:
- 大小写敏感
- 空格对齐(非TAB)
- 属性值前加空格
- 属性名后加冒号
- List item
- 支持转义字符,但是要用引号包住整个字段值
Example:
#对象:
user:
name: itcast
age: 16
#对象
user2:
name: itcast
age: 16
#数组(表示方法1)
likes:
- age
- music
- sleep
#数组(表示方法2)
likes2: [game,music,sleep]
#对象数组(表示1)
users:
- name: zhangsan
age: 18
- name: lisi
age: 17
#对象数组(表示2)
users2: [{name:zhangsan,age:18},{name:lisi,age:17}]
#变量引用(用SePL表达式)
baseDir: c:\user
tempDir: ${baseDir.?.?}\temp
#属性值中出现转义字符要用双引号包裹
a: "\t1 \t2"
字面值表示方式:
- Boolean:TRUE
- null: ~
- String:Hello,“hello”
- date: 2022-01-01
- datetime:2022-01-01T00:00:00+08:00 (+代表时区)
2.使用
- 引用单个yaml中的数据
@value(SpEL表达式===>${一级属性名.二级属性名...})
- 将所有数据进行封装
@Autowired
private Environment env;
...
System.out.println(env.getProperty("likes[1]"));
System.out.println(env.getProperty("user.age"));
System.out.println(env.getProperty("country"));
- 自定义对象封装指定数据
//新类
@Component
@ConfigurationProperties(prefix = “xxx")
public class xx
//Controller中
@Autowired
private xx xx;
...
sout(xx);
...