2020-09-14
YAML的用法
1.0简介
YAML是“YAML Ain't Markup Language”的缩写
YAML文件的后缀名为.yml或.yaml
1.1语法规则
-
大小些敏感
-
使用缩进表示层级关系
-
缩进时不允许使用Tab键,只能使用空格
-
缩进的空格数目不重要,只要相同的元素左侧要对齐
-
#表示注释
1.2基本用法
YAML支持的三种数据结构:
-
字面量:单个的,不可再分的值
-
对象:键值对的集合
-
数组:一组按次序排列的值
三种结构的用法:
1.
字面量:普通的值,如数字、字符串、布尔值
注意:字符串包含空格或特殊字符,则使用引号引起来,单引号和双引号都可以
单引号不对字符进行转义,双引号会对字符进行转义
2.
对象:也称为映射Map,包含属性和值
#写法1:换行写
user:
name:tom
age:20
sex:male
#写法2:行内写
user:{name:tom,age:20,sex:male}
3.数组,如List、Set等
#写法1:一组短横线开头的行
names:
- tom
- jack
- alice
#写法2:行内写法
name:{tom,jack,alice}
1.3属性值得注入
通过加载配置文件,为属性注入值
1.3.1 使用.yml配置文件
application.yml文件:
user:
username: admin
age: 19
status: true
birthday: 2020/9/10
address:
province: 江西省
city: 南昌市
lists:
- list1
- list2
- list3
maps: {k1: v1,k2: v2}
如何使用:User类中进行数据绑定
使用注解
@Component 将目标类添加到容器中
使用注解
@ConfigurationProperties(prefix="xxx")
将当前类中所有的属性与配置文件中的
xxx进行绑定(默认读取全局配置文件中的值)
1.3.2使用.properties文件
application.properties文件:
注意:
在IDEA中.properties文件默认使用gbk编码,会出现中文乱码
)
1.3.3使用@Value
properties:
User:
@Value和@configruation的比较:
-
@Value只能一个个为属性注入值而@ConfigruationProperties可以批量为属性注入值
-
@Value不能为复杂属性注入值
可以添加文件处理器的依赖,编码时会自动提示(可选)
多环境配置:
1.application.properties多环境配置
application.properties中配置
先定义另外的配置文件
例如:applicaiton-test.properties
#注意:格式必须是application-
xxx
.properties
在application.properties中添加下面代码段:
spring.profiles.active=test
#使用方法:spring.profiles.active=
xxx
#xxx必须一致
2.application.yml多环境配置
通过
--- 可分割application.yml文档,形成多个文档块
文档块内容:
spring:
profiles: xxx
server:
prot:9393
使用:
在第一个文档块中声明
server:
port: 8080 #默认端口号
spring:
profiles:
active: xxx
文档块内容中的xxx和第一个文档块内容xxx要对应