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分发到各个类中