1)基本语法
键值对表示方式:k:(空格)v(注意:空格必须有,不可以使用TAB键);
属性和值都是大小写敏感;
通过空格缩进来控制层级关系;
只要是左对齐的数据,都是同一个层级的;
server:
port: 8080
spring:
application:
name: demo
2)值的表现形式
2.1)普通的值(数字,字符串,布尔值):
注意:
当用双引号("")引起来的内容中,转义字符能生效;
当用单引号('')引起来的内容中,转义字符无法生效,原样输出;
2.2)对象、Map(属性和值)(键值对):
简单来说就是,value中还是key:value表示,例如:
info:
name: phil
sex: man
或者
info: {name: phil,sex: man}
2.3)数组(List、Set):用- 值表示数组中的一个元素
pets:
‐ cat
‐ dog
‐ pig
或者
pets: [cat,dog,pig]
3)JAVA获取yml配置
yml文件
person:
lastName: hello
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists:
‐ jack
‐ faker
dog:
name: 小狗
age: 12
java类:@Component添加入spring中,@ConfigurationProperties将yml中前缀为person的内容,注入到该组件类的属性中,当然属性名称和类型必须对应。
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
//...其余省略
}
或者使用@Value注解也可以,这个注解可以针对单个属性进行注入,譬如,我只想获取到person下的lastName,那么就可以写
@Value("${person.last‐name}")
private String lastName;