YAML数据格式

时间:2025-04-05 08:24:30

yaml:

yaml的格式 :

YAML (YAML Ain’t Markup Language) , 一种数据序列化格式

  • 优点 :
    • 容易阅读
    • 容易与脚本语言交互
    • 以数据为核心 , 重数据轻格式
  • YAML文件扩展名 :
    • .yml (主流)
    • .yaml

yaml的数据格式 :

#单个属性
country: china
#中间一定要有一个空格

#(对象)多个属性
user:
  name: sichen
  age: 17
#注意 : 层级之间名称不能重复

#写一个数组
likes:
  - game
  - music
  - sleep
#用-号 , 中间加空格
#简单写法 
likes2: [game,music,sleep]

#对象数组 : 
user2:
  - name: zhangsan
  - age: 17
  
#简单写法 :
user3: [{name:zhangsan,age:17},{name:sichen,age=17}]


读取yaml单一属性数据 :

在类中设置一个变量 :

@Value("${name}")
private String name;
//使用${配置文件中想要引用的数据的名称}

读取yaml中数组的值 :

@Value("${数组名称[第几个数].数组中的什么数据}")
private String name;
//使用${配置文件中想要引用的数据的名称}

@Value("${user[0].age}")
private String age;

yaml文件中的变量引用 :

#使用${属性名}的格式来引用数据
age: 10000

user2:
  -
    name: 思尘
    age: ${age}

转义字符:

注意如果想使用转义字符的话 , 要使用引号将字符串括起来


读取yaml全部属性数据 :

//使用自动装配 , 将所有的数据封装到一个对象Environment中
@Autowired
private Environment env;

读取封装一部分的数据:

创建一个bean类来封装数据

//定义数据模型封装yaml文件中对应的数据
//定义为spring管控的bean , 一定要记得加这个注解
@Component
//指定加载的数据
@ConfigurationProperties("datasource")
public class MyDataSource {
//注意这里的命名 , 必须和yaml文件中的命名一致
    private String driver;
    private String url;
    private String username;
    private String password;
}

在程序代码中 :

@Autowired
private MyDataSource dataSource;

SpringBoot内部的读取配置文件的方式就是使用上边的这一种方式 , 通过修改配置 , SpringBoot将这些配置属性加载进对应的技术的类中 , 来实现对相应技术的管控

我们在开发中也实际使用的是这种方式 , 通过编写配置文件 , 加载进Spring容器 , 最终通过Spring分发到各个类中