-
基本概念
YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。
-
基本语法
- key:value; kv之间有空格
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许使用空格
- 缩进空格数不重要,要与相同层级元素左对齐
- '#'表示注释
- ' '和" " 表示字符串内容会被 转义/不转义
-
数据类型
1.字面量:单个的、不可再分的值。如:date、boolean、string、number、null
k: v
2.对象:键值对的集合。如:map、hash、set、object
行内写法: k: {k1: v1,k2: v2,k3: v3}
3.数组:一组按照一定次序排列的值。如 array、list、queue
行内写法:k: [v1,v2,v3]
-
示例
Person.java
package com.example.springboot02.bean;
import lombok.Data;
import lombok.ToString;
import org.springframework.stereotype.Component;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ConfigurationProperties(prefix = "person")
@Component
@ToString
@Data
public class Person {
private String userName;
private Boolean npc;
private Date birth;
private Integer age;
private Pack pack;
private String[] interests; //兴趣爱好
private List<String> cv;
private Map<String, Object> statistics; //面板属性
private Set<Double> gcd; //技能冷却时间
private Map<String, List<Pack>> allPacks;
}
分析:@Component注解声明Person 类是Spring管理的一个bean;通过@ConfigurationProperties注解加载properties文件内的配置,通过prefix属性指定的properties的配置前缀person绑定,后期修改application.yml即可。
Pack.java
package com.example.springboot02.bean;
import lombok.Data;
import lombok.ToString;
import java.util.Map;
@ToString
@Data
public class Pack {
private String name;
private String specification; //武器属性
}
application.yml
controller
package com.example.springboot02.controller;
import com.example.springboot02.bean.Person;
import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class helloController {
@Autowired
Person person;
@RequestMapping("/person")
public Person person(){
return person;
}
}
分析:@Autowired注解自动注入该配置;@RestController是@Controller和@ResponseBody的组合,@Controller声明是一个控制器,@ResponseBody将返回值放在response体内。@RequestMapping配置url和方法之间的映射
运行,访问http://localhost:8080/person