• yaml


    ymal

    1.yaml 介绍

    2.使用文档

    1.官方文档

    https://yaml.org/

    2.yaml for java

    https://www.cnblogs.com/strongmore/p/14219180.html

    3.yaml 基本语法

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

    4.数据类型

    1.字面量

    1. 字面量:单个的、不可再分的值。date、boolean、string、number、null

    2. 保存形式为 key: value 如图

    image-20220731125003559

    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: 牛魔王
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 举例说明

    image-20220731125235585

    3.数组

    1. 数组:一组按次序排列的值, 比如 array、list、queue
    #行内写法: 
    k: [v1,v2,v3] 
    hobby: [打篮球, 打乒乓球, 踢足球]
    #或者换行格式
    k:
     - v1 
     - v2 
     - v3 
    hobby: 
     - 打篮球 
     - 打乒乓球 
     - 踢足球
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 举例说明

    image-20220731125429392

    5.yaml 应用实例

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

    2.需求图解

    1. 创建项目 configuration , 完成 yaml 的使用

    2. 运行效果

    image-20220731125706446

    image-20220731125712729

    3.代码实现

    1. 创建一个新的 SpringBoot 项目 - configuration
    2. 在 pom.xml 引入 lombok, 并切换一下 springboot 版本
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
    
        <groupId>com.hspedugroupId>
        <artifactId>configurationartifactId>
        <version>1.0-SNAPSHOTversion>
    
        
        <parent>
            <artifactId>spring-boot-starter-parentartifactId>
            <groupId>org.springframework.bootgroupId>
            <version>2.5.3version>
        parent>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
            dependency>
    
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-configuration-processorartifactId>
                
                <optional>trueoptional>
            dependency>
        dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    3.创建src\main\java\com\llp\springboot\bean\Car.java

    @Data
    public class Car {
        private String name;
        private double price;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.创建src\main\java\com\llp\springboot\bean\Monster.java

    @Data
    @Component
    @ConfigurationProperties(prefix = "monster")
    public class Monster {
        private Integer id;
        private String name;
        private Integer age;
        private Boolean isMarried;
        private Date birth;
        private Car car;
        private String[] skill;
        private List<String> hobby;
        private Map<String, Object> wife;
        private Set<Double> salaries;
        private Map<String, List<Car>> cars;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    1. 创建 resources/application.yml, 演示各种写法
    monster:
      id: 100
      name: "牛魔王~~"
      age: 500
      isMarried: true
      birth: 2000/10/10
      #对象
    #  car: {name: 宝马, price: 200000} #行内格式
      car: #换行格式
        name: 宝马~
        price: 300000
      #数组
    #  skill: [芭蕉扇, 牛魔拳] #行内格式
      skill:
        - 芭蕉扇~
        - 牛魔拳~
    #  hobby: [喝酒, 吃肉] #行内格式
      hobby:
        - 喝酒~
        - 吃肉~
      #map-属于对象
    #  wife: {no1: 玉面狐狸, no2: 铁扇公主} #行内风格
      wife:
        no1: 玉面狐狸~
        no2: 铁扇公主~
    #  salaries: [10000,20000] #行内风格
      salaries:
        - 10000
        - 20000
      cars: #因为cars k-v v是list 所以我们使用换行风格
        group1:
          - {name: 奔驰, price: 300000}
          - name: 保时捷
            price: 400000
        group2:
          - {name: 奔驰~, price: 100000}
          - name: 保时捷~
            price: 500000
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    6.创建src\main\java\com\llp\springboot\controller\HelloController.java

    @RestController
    @RequiredArgsConstructor
    public class HelloController {
    
        private final Monster monster;
    
        @RequestMapping("/monster")
        public Monster monster(){
            return monster;
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    7.启动项目测试

    image-20220731134029639

    6.yaml 使用细节

    1. 如 果 application.properties 和 application.yml 有 相 同 的 前 缀 值 绑 定 , 则 application.properties 优先级高, 开发时,应当避免

    2. 字符串无需加引号, 这个在前面已经演示了, 如果你用" " 或者 ’ ’ 包起来, 也可以

    3. 解决 yaml 配置文件,不提示字段信息问题

    ​ (1)在编写 application.yml 文件时,没有提示 Monster 的字段信息, 非常不方便

    ​ (2)在 pom.xml 加 入 spring-boot-configuration-processor 依 赖

    
    <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-configuration-processorartifactId>
       
       <optional>trueoptional>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​ (3)对 application.yml 文件编辑,就会提示字段, 提示: 输入你在 Bean 配置的 prefix 名 字就会提示

    image-20220731134429113

    image-20220731134438647

    ​ (4)如果还没有提出提示, 可以安装一个 yaml 插件来搞定.

    image-20220731134510939

  • 相关阅读:
    html+css制作3D七夕表白旋转相册特效
    【开源打印组件】vue-plugin-hiprint初体验
    java+ssm+vue基本微信小程序的高速公路服务区充电桩在线预订系统 uniapp小程序
    Python语言:算术运算符知识点讲解
    分布式架构下如何选择最佳 Store?
    `算法知识` 二进制操作, 与&, 或|, 异或^
    服务器数据恢复—误还原虚拟机快照后如何恢复之前的数据?
    第四届“传智杯”全国大学生IT技能大赛(初赛A组) 补题
    linux安装minio以及springboot整合使用
    FPGA之旅设计99例之第十四例-----接收红外遥控数据
  • 原文地址:https://blog.csdn.net/qq_44981526/article/details/126084900