码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot:(六)YAML配置文件


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

    文章目录

      • 6.1 简介
      • 6.2 基本语法
      • 6.3 数据类型
        • 示例
      • 6.4 自定义类绑定的配置提示

    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
  • 相关阅读:
    Metasploit介绍
    jinja2.exceptions.UndefinedError: ‘None‘ has no attribute ‘id‘
    长牌游戏功能整理
    git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库(非空的)、ssh链接远程仓库,协同开发
    Java数据结构之深度解析二叉树
    SwiftUI 内功之 如何提高 iOS 代码性能减少数组搜索优化
    【车载开发系列】CAN总线知识入门篇
    举个栗子!Tableau 技巧(259):文本表中省市县数据的灵活逐级下钻「方法一」
    计算机网络基础(一):网络系统概述、OSI七层模型、TCP/IP协议及数据传输
    IC验证| Verilog语法详解之条件语句
  • 原文地址:https://blog.csdn.net/sd_960614/article/details/127724197
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号