当前位置: 首页 > news >正文

SpringBoot 开发—— YAML文件深度分析

文章目录

  • 一、YAML概述
  • 二、数据表示
  • 三、YAML 的语法
  • 四、YAML 的应用
  • 五、YAML 与其他格式的比较
    • 1、YAML vs .properties文件
      • 可读性和结构
      • 数据类型支持
      • 扩展性和灵活性
      • 使用场景
      • 性能和支持
    • 2、YAML vs. JSON
    • 3、YAML vs. XML
  • 六、使用 YAML 的注意事项
  • 七、总结

YAML 是非常流行的一种配置文件格式,无论是前端还是后端,都可以见到 YAML配置。那么 YAML 配置和传统的 XML, JSON, properties 配置相比,到底有什么优势?这篇文章,我们来详细的聊一聊。

一、YAML概述

YAML(YAML Ain’t Markup Language)的设计初衷是为了提供一种比 XML 更加简洁和易读的配置文件格式,同时也比 JSON更加人性化。YAML 的基本原理是通过缩进和简单的标记来表示数据结构,它支持多种数据类型,包括标量(如字符串、整数)、列表(数组)和字典(键值对)。

YAML 支持注释,使用 # 开头。注释可以放在行的末尾,也可以独占一行。

二、数据表示

YAML文件中的数据结构包含以下几种:

  1. 标量(Scalars):标量是最基本的数据类型,可以是字符串、布尔值、整数、浮点数等。在 YAML 中,标量可以用多种方式表示,如直接写出、用引号括起等。
  2. 列表(Sequences):列表是一组有序的数据,可以用连字符(-)开头的行来表示。
  3. 字典(Mappings):字典是一组无序的键值对,用冒号(:)分隔键和值。
  4. 复合结构:YAML 允许嵌套使用列表和字典来表示复杂的数据结构。

三、YAML 的语法

YAML 的语法非常简洁,主要依赖于缩进来表示数据的层次结构。以下是一些基本的语法规则:

  1. 缩进:YAML 使用空格缩进来表示层级关系,通常使用两个空格。缩进必须一致,不能混用空格和制表符。
  2. 键值对:字典中的键值对用冒号分隔,冒号后面要有一个空格。
  3. 列表项:列表项用连字符(-)开头,连字符后面要有一个空格。
  4. 字符串:字符串可以直接写出,也可以用单引号或双引号括起。其中,单引号用于保留字符串中的特殊字符,双引号可用于转义字符。
  5. 多行字符串:YAML 支持多行字符串,可以使用 | 或 > 来表示。| 表示保留换行,> 表示折叠换行。
  6. 布尔值:布尔值用 true 和 false 表示,大小写不敏感。
  7. 空值:空值可以用 ~ 或 null 表示。

为了更好地展示 YAML,下面的示例展示了不同的数据结构和语法特性。

  1. 简单的配置文件
# 应用程序配置
app:name: MyAppversion: 1.0.0debug</
http://www.lryc.cn/news/502164.html

相关文章:

  • 复合机器人整体解决方案
  • 【Oracle11g SQL详解】日期和时间函数:SYSDATE、TO_DATE、TO_CHAR 等
  • VSCode设置字体
  • shell编程入门之提取字符并设置rtc时间
  • react 不可变数据更新(Immutable Update)合并对象 类似与Java 的BeanUtils.copyProperties‌
  • Linux GCC基础用法⑦
  • PyTorch 切片运算 (Slice Operator)
  • SpringSecurity Oauth2 -账号密码实现多因子身份认证
  • 【CSS in Depth 2 精译_071】11.4 思考字体颜色的对比效果 + 11.5 本章小结
  • Y3编辑器文档4:触发器1(对话、装备、特效、行为树、排行榜、不同步问题)
  • 趣味编程:猜拳小游戏
  • 软件工程 概述
  • CountDownLatch阻塞后countDown未执行会如何?
  • k8s,operator
  • 使用 pyperclip 进行跨平台剪贴板操作
  • 20 设计模式之职责链模式(问题处理案例)
  • SpringBoot3集成MybatisPlus3和knife4j(swagger3兼容增强版)
  • 【MIT-OS6.S081作业1.3】Lab1-utilities primes
  • 游戏引擎学习第35天
  • learn-(Uni-app)输入框u-search父子组件与input输入框(防抖与搜索触发)
  • 设置IMX6ULL开发板的网卡IP的两种方法(临时生效和永久有效两种方法)
  • 流量转发利器之Burpsuite概述(1)
  • Transformer入门(6)Transformer编码器的前馈网络、加法和归一化模块
  • element-plus中的resetFields()方法
  • 【过滤器】.NET开源 ORM 框架 SqlSugar 系列
  • Jmeter Address already in use: connect 解决
  • C#常见错误—空对象错误
  • Leetcode数学部分笔记
  • 微信小程序web-view 嵌套h5界面 实现文件预览效果
  • 【汽车】-- 燃油发动机3缸和4缸