• 以数据为中心的标记语言-->yaml


    目录

    一.yaml 介绍

    二.yaml 基本语法

    三.数据类型

    1.字面量

    2.对象

    3.数组

    四.yaml 应用实例 

    1.需求:

    2.需求图解

    3.代码实现

    五.yaml 使用细节


    一.yaml 介绍

            YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言 ) 的递归缩写。在开发
    的这种语言时, YAML 的意思其实是: "Yet Another Markup Language"( 仍是一种标记语言 )
    是为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名
    解读
    1 YAML 以数据做为中心,而不是以标记语言为重点
    2 YAML 仍然是一种标记语言 , 但是和传统的标记语言不一样 , 是以数据为中心的标记语
    .
    3 YAML 非常适合用来做以数据为中心的配置文件 [springboot : application.yml]

    二.yaml 基本语法

    1. 形式为 key: value ;注意 :冒号  后面有空格
    2. 区分大小写
    3. 使用缩进表示层级关系
    monster:
            id: 100
            name: 小虎
    4. 缩进不允许使用 tab ,只允许空格 [ 有些地方也识别 tab , 推荐使用空格 ]
    5. 缩进的空格数不重要,只要相同层级的元素左对齐即可
    6. 字符串无需加引号
    7. yml , 注释使用 #

    三.数据类型

    1.字面量

    1. 字面量:单个的、不可再分的值。 date boolean string number null
    2. 保存形式为 key: value 如图

    2.对象

    1. 对象:键值对的集合 , 比如 map hash set object

     

    行内写法: k: {k1:v1,k2:v2,k3:v3}
    monster: {id: 100,name: 牛魔王 }
    # 或换行形式
    k:
            k1: v1
            k2: v2
            k3: v3
    monster:
            id: 100
            name: 牛魔王
    2. 举例说明

    3.数组

    1. 数组:一组按次序排列的值 , 比如 array list queue
    行内写法: k: [v1,v2,v3]
    hobby: [ 打篮球 , 打乒乓球 , 踢足球 ]
    # 或者换行格式
    k:
            - v1
            - v2
            - v3
    hobby:
            - 打篮球
            - 打乒乓球
            - 踢足球

     2. 举例说明

    四.yaml 应用实例 

    1.需求:

    使用 yaml 配置文件 和 JavaBean 进行数据绑定 , 体会 yaml 使用方式

    2.需求图解

    1. 创建项目 configuration , 完成 yaml 的使用
    2. 运行效果

     

    3.代码实现

    1. 创建一个新的 SpringBoot 项目 - configuration ,
    2. pom.xml 引入 lombok, 并切换一下 springboot 版本
    1. <parent>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-parentartifactId>
    4. <version>2.5.3version>
    5. <relativePath/>
    6. parent>
    7. <dependency>
    8. <groupId>org.projectlombokgroupId>
    9. <artifactId>lombokartifactId>
    10. dependency>
    3. 创建bean文件(car)
    提醒
    一个小细节 : 创建的 bean 需要在 SpringBootApplication 包或者其子包 , 否则不会被默认扫
    , 同时也不能完全使用 lombok 的相关简化注解
    1. @ToString
    2. @Data
    3. public class Car {
    4. private String name;
    5. private Double price;
    6. }
    4. 创建bean文件(monster)
    1. @ConfigurationProperties(prefix = "monster")
    2. @Component
    3. @ToString
    4. @Data
    5. public class Monster {
    6. private Integer id;
    7. private String name;
    8. private Integer age;
    9. private Boolean isMarried;
    10. private Date birth;
    11. private Car car;
    12. private String[] skill;
    13. private List hobby;
    14. private Map wife;
    15. private Set salaries;
    16. private Map> cars;
    17. }
    5. 创建 resources/application.yml, 演示各种写法 . 提醒 : 编写 application.yml ,
    Bean 的字段是可以通过 安装插件或 jar 自动提示 , 后面会讲 , 现在先苦后甜 .
    1. monster:
    2. id: 100
    3. name: "牛魔王~~"
    4. age: 500
    5. isMarried: true
    6. birth: 2000/10/10
    7. #对象
    8. # car: {name: 宝马, price: 200000} #行内格式
    9. car: #换行格式
    10. name: 宝马~
    11. price: 300000
    12. #数组
    13. # skill: [芭蕉扇, 牛魔拳] #行内格式
    14. skill:
    15. - 芭蕉扇~
    16. - 牛魔拳~
    17. # hobby: [喝酒, 吃肉] #行内格式
    18. hobby:
    19. - 喝酒~
    20. - 吃肉~
    21. #map-属于对象
    22. # wife: {no1: 玉面狐狸, no2: 铁扇公主} #行内风格
    23. wife:
    24. no1: 玉面狐狸~
    25. no2: 铁扇公主~
    26. # salaries: [10000,20000] #行内风格
    27. salaries:
    28. - 10000
    29. - 20000
    30. cars: #因为cars k-v v是list 所以我们使用换行风格
    31. group1:
    32. - {name: 奔驰, price: 300000}
    33. - name: 保时捷
    34. price: 400000
    35. group2:
    36. - {name: 奔驰~, price: 100000}
    37. - name: 保时捷~
    38. price: 500000
    6. 创建控制器HiController.java
    1. @RestController
    2. public class HiController {
    3. @Resource
    4. private Monster monster;
    5. @RequestMapping("/monster")
    6. public Monster monster() {
    7. return monster;
    8. }
    9. }

    五.yaml 使用细节

    1. 如 果 application.properties application.yml 有 相 同 的 前 缀 值 绑 定 , 则
    application.properties 优先级高 , 开发时,应当避免
    2. 字符串无需加引号 , 这个在前面已经演示了 , 如果你用 " " 或者 ' ' 包起来 , 也可以 ,
    单举例
    3. 解决 yaml 配置文件,不提示字段信息问题
    1) 如图 , 大家可以知道,在编写 application.yml 文件时,没有提示 Monster 的字段信息,
    非常不方便
    2) pom.xml 加 入 spring-boot-configuration-processor 依 赖 , 可 以 从
    spring-boot-reference.pdf 拷贝
    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-configuration-processorartifactId>
    4. <optional>trueoptional>
    5. dependency>

     4) application.yml 文件编辑,就会提示字段, 老韩提示: 输入你在 Bean 配置的 prefix 字就会提示.

    5) 提示: 如果还没有提出提示, 可以安装一个 yaml 插件来搞定 

  • 相关阅读:
    练习题——Linux文件权限与目录管理
    Mac如何修改文件的默认打开程序
    【Go实战基础】创建并完成第一个可执行的 go 程序
    经典双指针算法试题(二)
    【迅投qmt系列】3、获取实时数据
    零基础自学SQL课程 | SQL中的日期函数大全
    梯度下降、损失函数、神经网络的训练过程
    软件架构风格-BS三层架构
    猿创征文 | 【Rust指南】解析struct 结构体的定义、实例化、方法、所有权、关联函数
    继承和组合
  • 原文地址:https://blog.csdn.net/weixin_54107527/article/details/128020316