• SpringBoot:(六)YAML配置文件


    笔记来源:【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满)

    6.1 简介

    • YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
    • 非常适合用来做以数据为中心的配置文件

    6.2 基本语法

    • key: value (冒号之后有一个空格
    • 大小写敏感
    • 使用缩进表示层级关系
    • 缩进不允许使用tab,只允许空格(IDEA中无所谓,自动将tab转化为4个空格,可以放心使用)
    • 缩进的空格数不重要,只要相同层级的元素左对齐即可
    • '#'表示注释
    • 字符串无需加引号,如果要加,单引号''表示转义字符不生效双引号""表示转义字符生效

    6.3 数据类型

    • 字面量:单个的、不可再分的值。可以是date、boolean、string、number、null

      k: v
      
      • 1
    • 对象:键值对的集合。可以是map、hash、object

      # 行内写法:  
      k: {k1: v1, k2: v2, k3: v3}
      
      # 或
      k: 
        k1: v1
        k2: v2
        k3: v3
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    • 数组:一组按次序排列的值。可以是array、list、set、queue

      #行内写法:  
      k: [v1, v2, v3]
      
      #或者
      k:
       - v1
       - v2
       - v3
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    经过测试,yaml中的key不能为中文,而value可以。

    示例

    @Data
    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;
    }
    
    @Data
    public class Pet {
        private String name;
        private Double weight;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    person:
      user-name: zhangsan
      boss: true
      birth: 1996/06/14
      age: 26
      pet: {name: 胖胖}
      interests: [篮球, 足球, DNF]
      animal: [小狗, 小猫, 胖虎]
      score:
        chinese: {value: 99}
        math:
          value: 100
        english:
          value: 98
      salarys: [18000.0, 25000.0]
      all-pets:
        sick: [{name: 小红}, {name: 小蓝}]
        healthy:
          - {name: 小白}
          - {name: 小黑}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    6.4 自定义类绑定的配置提示

    • 自定义的类和配置文件绑定一般没有提示。若要提示,添加如下依赖:

      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-configuration-processorartifactId>
          <optional>trueoptional>
      dependency>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 在打包的时候,可以把这个包排除,因为这个包只是为了在开发的时候能够有提示作用,对打包的结果没有影响。

      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.bootgroupId>
                  <artifactId>spring-boot-maven-pluginartifactId>
                  <configuration>
                      <excludes>
                          <exclude>
                              <groupId>org.springframework.bootgroupId>
                              <artifactId>spring-boot-configuration-processorartifactId>
                          exclude>
                      excludes>
                  configuration>
              plugin>
          plugins>
      build>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
  • 相关阅读:
    docker介绍和安装
    如何写http mjpeg server
    做一个最新版的淘宝客返利程序源码有多难?
    实践总结:一篇搞懂链表——单链表和双指针技巧
    Liunx环境编程
    KT148A语音芯片下载过程的问题集锦 包含下载不了批量生产的说明
    计算机网络常见面试题
    C++的封装、继承、多态
    技术分享 | app自动化测试(Android)-- 属性获取与断言
    世微 电动车摩托车灯 5-80V 1.2A 一切二降压恒流驱动器AP2915
  • 原文地址:https://blog.csdn.net/sd_960614/article/details/127724197