YAML配置方法汇总

目录

1 语法

2 配置信息

2.1 字面量(普通的值:数字,字符串,布尔)

2.2 对象

2.3 Map

2.4 List

2.5 数组

3 总结


1 语法

  • k:(空格)v:表示一对键值对(空格必须有)
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • #表示注释
  • 字符串不需要加引号,如果加了''单引号或""双引号内容会被转义【单引号转义】或不转义【双引号不转义】

2 配置信息

2.1 字面量(普通的值:数字,字符串,布尔)

写法:k: v

字符串默认不用加上单引号或者双引号;

"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "zhangsan \n lisi":输出;zhangsan 换行 lisi

'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

server:
 port: 8080
 servlet:
    context-path: /

获取方式:

@Value("${server.port}")
private Integer port;

2.2 对象

写法:k: v,在下一行来写对象的属性和值的关系;注意缩进

example: 
  #对象行内写法
	school: '{"name": "北京市第一中学","location": "北京市"}'
	school2:
    name: 北京市第一中学
    location: 北京市
@Data
@Component
@ConfigurationProperties(prefix = "example")
public class TestConfig2 {
    
    private School school;

    private School school2;
    
}

2.3 Map

写法:k: v,在下一行来写对象的属性和值的关系;注意缩进

  • 行内写法及获取方式
map:
  example: '{"key1": "value1", "key2": "value2"}'
@Component
public class TestConfig {

    @Value("#{${map.example}}")
    private Map<String, String> map;

}
  • 行外写法及获取方式
example:
  map:
    key1: value1
    key2: value2
@Data
@Component
@ConfigurationProperties(prefix = "example")
public class TestConfig2 {
    
    private Map<String, String> map;
    
}

2.4 List

  • 行外写法(用- 值表示数组中的一个元素)及获取方式
example:
  list:
    - list1
    - list2
    - list3
@Data
@Component
@ConfigurationProperties(prefix = "example")
public class TestConfig2 {
    
    private List<String> list;
    
}
  • 行内写法及获取方式
list:
  # 行内写法
  example: list1,list2,list3
@Component
public class TestConfig {

    // @Value("#{'${list.example2}'.empty ? null : '${list.example2}'.split(',')}")
    @Value("#{'${list.example}'.split(',')}")
    private List<String> list;

}

2.5 数组

array:
  example: array1,array2,array3
@Component
public class TestConfig {

    @Value("${array.example}")
    private String[] array;

}

3 总结

类型

配置方式

取值方式

字面量

key: value

@Value("${key}")

对象

example:

object: '{"key1": "value1","key2": "value2"}'

@ConfigurationProperties(prefix = "example")

public class TestConfig2 {

private Object object;

}

example:

object:

key1: value1

key2: value2

数组

example:

array: array1,array2,array3

@Value("${example.array}")

List

example:

list:

- list1

- list2

- list3

@ConfigurationProperties(prefix = "example")

public class TestConfig2 {

private List<String> list;

}

example:

list: list1,list2,list3

@Value("#{'${list.example2}'.empty ? null : '${list.example2}'.split(',')}")

@Value("#{'${list.example}'.split(',')}")

Map

map:

example: '{"key1": "value1", "key2": "value2"}'

@Value("#{${map.example}}")

example:

map:

key1: value1

key2: value2

@ConfigurationProperties(prefix = "example")

public class TestConfig2 {

private Map<String, String> map;

}

猜你喜欢

转载自blog.csdn.net/weixin_46505978/article/details/129918580
今日推荐