【SpringBoot】薛定谔的yaml

简介: 【SpringBoot】薛定谔的yaml

 1、基本语法
key: value value和:之间有一个空格

大小写敏感:区分大小写

使用缩进表示层级关系

缩进不允许使用Tab,只允许使用空格。在Idea中可以使用Tab

缩进的空格数不重要,只要相同的层级的元素左对齐即可

例如我在yaml配置一个兴趣,不管前面有多少个空格,只要左对齐了,这三个兴趣都是一个层级的
interests:

    - 尤克里里
    - 篮球
    - 石原里美

 

 ‘#’表示注释

''和""表示字符串内容,会转义/不会转义。例如名字"Zhangsan \n 李四",单引号会原封不动的输出,但是双引号会将\n变成换行符输出

2、数据类型
字面量:单个的、不可分的值。如Date、Boolean、String、Number、Null

对象:键值对的集合 map hash set object,例如宠物类(k),宠物有姓名(k1),体重(k2)。

数组:一组按次序排列的值 array,list,queue 

3、示例
package com.you.boot.bean;

import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Data
@ToString
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String,Object>score;
private Set<Double> salarys;
private Map<String,List<Pet>>allPets;

}
import lombok.Data;
import lombok.ToString;

@Data
@ToString
public class Pet {

private String name;
private Double weight;

}
application.yaml,以后忘了写法,看这个

person:
userName: Zhangsan

双引号会转义一些特殊字符

单引号不会转义一些特殊字符 如/n

boss: true
birth: 2022/7/1
age: 1

interests: [尤克里里,吉他]

interests:

      - 尤克里里
      - 篮球
      - 石原里美

animal: [旺财,小猪]

score:

english: 80

math: 90

score: {english: 80,math: 90}
salarys: [1200.00,12000.00,9999.00]
pet:

name: 小猪
weight: 99.99

allPets:

sick:
  - {name: 小猪,weight: 99.99}
  - name: 小鸡
    weight: 88.88
  - name: 阿猫
    weight: 70.00
health:
  - {name: 阿花,weight: 20.00}
  - {name: 阿叶,weight: 30.00}

4、自定义类绑定的配置提示
自己写的一些变量,在yaml编写的时候没有提示。

   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-configuration-processor</artifactId>
   <optional>true</optional>


导入依赖后,重启一下项目,自己定义的变量就有提示了

我们写的是userName,提示给的是user-name 也是可以的。

因为这一块只是方便我们编程,打包的时候没有用,所以我们加上这一段代码,让项目打包的时候不打包这个处理器

 <excludes>
     <exclude>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configurationprocessor</artifactId>
     </exclude>
 </excludes>


 【继续努力~~~】

相关文章
|
1月前
|
Java
SpringBoot之yaml
SpringBoot之yaml
|
2月前
|
XML Java 数据格式
SpringBoot中yaml格式、语法规则及数据读取方式(3种)
SpringBoot中yaml格式、语法规则及数据读取方式(3种)
73 0
|
1月前
|
Java C++
SpringBoot中的properties,yml,yaml的区别
SpringBoot中的properties,yml,yaml的区别
25 0
|
4月前
|
Kubernetes Java 容器
k8s部署springboot项目yaml
k8s部署springboot项目yaml
88 0
|
6月前
|
XML JSON Java
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
125 0
SpringBoot入门(三) 之springboot的配置配置文件以及yaml的使用
|
6月前
|
前端开发 Java 数据库
SpringBoot解析指定Yaml配置文件
最近在看某个开源项目代码并准备参与其中,代码过了一遍后发现多个自定义的配置文件用来装载业务配置代替数据库查询,直接响应给前端,这里简单记录一下实现过程。
219 0
|
7月前
|
XML 运维 Java
SpringBoot中Yaml语法和JSR303数据校验《第三课》
SpringBoot中Yaml语法和JSR303数据校验《第三课》
134 0
|
8月前
|
XML JSON Java
【SpringBoot学习笔记 二】YAML格式文件配置方式详解
【SpringBoot学习笔记 二】YAML格式文件配置方式详解
289 0
|
9月前
|
JSON Kubernetes Cloud Native
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
209 0
|
XML Java 应用服务中间件
SpringBoot的yaml
.配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

相关产品

  • 云迁移中心