上海建设网站公司哪家好,一网通办 上海,单页网站技术,品牌策划公司怎么选简介
YAML 是 “YAML Ain’t Markup Language”#xff08;YAML 不是一种标记语言#xff09;的递归缩写。在开发的这种语言时#xff0c;YAML 的意思其实是#xff1a;“Yet Another Markup Language”#xff08;仍是一种标记语言#xff09;。
非常适合用来做以数据…简介
YAML 是 “YAML Ain’t Markup Language”YAML 不是一种标记语言的递归缩写。在开发的这种语言时YAML 的意思其实是“Yet Another Markup Language”仍是一种标记语言。
非常适合用来做以数据为中心的配置文件
基本语法
● key: valuekv之间有空格 ● 大小写敏感 ● 使用缩进表示层级关系 ● 缩进不允许使用tab只允许空格 ● 缩进的空格数不重要只要相同层级的元素左对齐即可 ● #‘表示注释 ● 字符串无需加引号如果要加’与表示字符串内容 会被 转义/不转义
数据类型
字面量单个的、不可再分的值。date、boolean、string、number、null
k: v对象键值对的集合。map、hash、set、object
行内写法 k: {k1:v1,k2:v2,k3:v3}
#或
k: k1: v1k2: v2k3: v3数组一组按次序排列的值。array、list、queue
行内写法 k: [v1,v2,v3]
#或者
k:- v1- v2- v3示例
ConfigurationProperties(prefix person)
Component
Data
ToString
public class Person {private String userName;private Boolean boss;private Date birth;private Integer age;private Pet pet;private String[] interests;private ListString animal;private MapString, Object score;private SetDouble salarys;private MapString, ListPet allPets;
}Data
public class Pet {private String name;private Double weight;
}# yaml表示以上对象
person:userName: zhangsanboss: falsebirth: 2019/12/12 20:12:33age: 18pet: name: tomcatweight: 23.4interests: [篮球,游泳]animal: - jerry- marioscore:english: first: 30second: 40third: 50math: [131,140,148]chinese: {first: 128,second: 136}salarys: [3999,4999.98,5999.99]allPets:sick:- {name: tom}- {name: jerry,weight: 47}health: [{name: mario,weight: 47}]RestController
public class HelloController {AutowiredPerson person;RequestMapping(/person)public Person person(){return person;}}定义义类绑定的配置提示
自定义的类和配置文件绑定一般没有提示。
引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencybuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactId/exclude/excludes/configuration/plugin/plugins/build