iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBootYAML语法基础详细整理
  • 155
分享到

SpringBootYAML语法基础详细整理

SpringBootYAML语法JavaYAML 2022-11-13 18:11:17 155人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录YAMLYAML 简介YAML 语法YAML 常用写法YAML Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spri

YAML

Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。

SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。

  • application.properties
  • application.yml/yaml

其中,application.yml 是一种使用 YAML 语言编写的文件,它与 application.properties一样,可以在 Spring Boot 启动时被自动读取,修改 Spring Boot 自动配置的默认值。

YAML 简介

YAML 全称 YAML ain't Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。

想要使用 YAML 作为属性配置文件(以 .yml 或 .yaml 结尾),需要将 SnakeYAML 库添加到 classpath 下,Spring Boot 中的 spring-boot-starter-WEB 或 spring-boot-starter 都对 SnakeYAML 库做了集成, 只要项目中引用了这两个 Starter 中的任何一个,Spring Boot 会自动添加 SnakeYAML 库到 classpath 下。

YAML 语法

YAML 的语法如下:

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。(可设置Tab替换四个空格)
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。
  • #表示注释。

YAML 常用写法

YAML 支持以下几种数据结构

  • 普通的值(数字、字符串、布尔、日期)
  • 对象 属性值的集合
  • 数组 一组按次序排列的值
  • 集合 List、Set 与数组一样,Map与对象一样键值对的集合

普通值(字面量)

  • 字面量是指单个的,不可拆分的值,例如:数字、字符串、布尔值、以及日期等。
  • 在 YAML 中,使用“key:[空格]value”的形式表示一对键值对(空格不能省略)
  • 字面量直接写在键值对的“value”中即可,且默认情况下字符串是不需要使用单引号或双引号的

username: root
passWord: 123456

若字符串使用单引号,则不会转义特殊字符,特殊字符会输出为其本身想表达的含义

username1: 'zhangsan \n lisi'

输出:zhangsan \n lisi

若字符串使用双引号,则会转义特殊字符,\n代表换行

username2: "zhangsan \n lisi"

输出:'zhangsan lisi'

对象(属性和值)、Map(键值对)

它们都是一对键值对,YAML 为对象提供了 2 种写法

普通写法 ,使用缩进表示对象与属性的层级关系。

map1:
    name: 张三
    age: 23

行内写法

map2: {name: 李四,age: 24}

@ConfigurationProperties获取键值对数据

@Value获取键值对数据

@Value获取map数据

map解析中,字符串一定要用"“把map所对应的value包起来,要不然解析会失败,导致不能转成 Map<StrObject>

test:
  map: "{name: '李四',age: 24}"

@Component
@Data
public class Test {
    @Value("#{${test.map}}")
    private Map<String,Object> map;
}

这里说明一下,获取的map值是Test(map={name=李四, age=24})这样的,数据是在{}里的

YAML语法中如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须如下方式引用它

map: "{name: '李四',age: 24}"

数组、list、set

YAML 使用“-”表示数组、list、set 中的元素

普通写法

  array1:
    - 张三
    - 李四
  list1:
    - 23
    - 24

行内写法

array2: [王五,毛六]
list2: [25,26]

@ConfigurationProperties获取数组与集合数据

@Value根据索引获取数组与集合单个元素数据

想从yml配置文件中读取数组,但是按照yml配置数组的形式有点麻烦,可以使用字符串去模拟数组

test:
  list: 张三,李四,王五

spring默认时按照逗号进行分割的,所以代码中可以写成

@Component
@Data
public class Test {
    @Value("${test.list}")
    private List<String> list;
}

另外,@Value注解是支持SpEL表达式的,所以还可以写成

@Component
@Data
public class Test {
    @Value("#{'${test.list}'.split(',')}")
    private List<String> list;
}

复合结构

以上几种数据结构可以任意组合使用,以实现不同的用户需求

比如List中放Map

test:
  listInMap:
    - name: 张三
      age: 23
    - name: 李四
      age: 24
    - {name: 王五,age: 25}

YAML 组织结构

一个 YAML 文件可以由一个或多个文档组成,文档之间使用“---”作为分隔符,且个文档相互独立,互不干扰。如果 YAML 文件只包含一个文档,则“---”分隔符可以省略。

#默认配置
server:
  port: 8080
#切换配置
spring:
  profiles:
    active: test
---
#开发环境
server:
  port: 8081
spring:
  config:
    activate:
      on-profile: dev
---
#测试环境
server:
  port: 8082
spring:
  config:
    activate:
      on-profile: test
---
#生产环境
server:
  port: 8083
spring:
  config:
    activate:
      on-profile: prod

到此这篇关于SpringBoot YAML语法基础详细整理的文章就介绍到这了,更多相关SpringBoot YAML内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBootYAML语法基础详细整理

本文链接: https://www.lsjlt.com/news/170209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBootYAML语法基础详细整理
    目录YAMLYAML 简介YAML 语法YAML 常用写法YAML Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spri...
    99+
    2022-11-13
    SpringBoot YAML语法 Java YAML
  • Kotlin 基础语法详细介绍
    Kotlin 基础语法详细介绍基础语法定义包名包名的定义应当在源文件的头部package my.demoimport java.util.*// ......
    99+
    2023-05-31
    kotlin 基础语法
  • Python基础-特殊方法整理详解
    目录1、概述2、常用特殊方法及实现2.1 _len__()2.2 __str__()2.3 __iter__()2.4 __getitem__()2.5 __new__()2.6 使...
    99+
    2024-04-02
  • Python3 基础语法详解
    目录编码标识符python保留字注释行与缩进多行语句数字(Number)类型字符串(String)空行等待用户输入同一行显示多条语句多个语句构成代码组print 输出import 与...
    99+
    2024-04-02
  • oracle基础语法详解
    Oracle数据库的初步学习 数据库的安装及其配置,使用默认选项进行安装即可 oracle的几种常见客户端 Web端:https://localhost:5500/em(浏览器...
    99+
    2024-04-02
  • Vue 2.0 基础详细
    目录1、特点2、实例3、选项 Options4、基本语法5、生命周期6、路由管理Vue-Router6.1 路由配置6.2 路由跳转6.3 路由守卫7、状态管理器Vuex7.1 配置...
    99+
    2024-04-02
  • JSON基础介绍与详细用法
    一、什么是JSON 1、JSON指的是JavaScript对象表示法(JavaScript Object Notation)。2、JSON是轻量级的文本数据交换格式,比XML更小、更...
    99+
    2024-04-02
  • C语言基础函数用法示例详细解析
    目录函数函数定义函数一般格式C语言函数分类库函数库函数的分类库函数的学习自定义函数函数的参数实际参数形式参数函数的调用传值调用传址调用无参函数调用函数的声明和定义函数的声明函数的定义...
    99+
    2024-04-02
  • C++超详细梳理基础知识
    目录命名空间的使用来源命名空间的使用不展开部分展开全展开函数重载函数重载的规则C++如何实现函数重载引用命名空间的使用 来源 在了解命名空间的原理和使用之前,我们先要理解,命名空间是...
    99+
    2024-04-02
  • SpringBootyaml语法与数据读取操作详解
    目录yamlyaml语法规则字面值表示方式:数组表示方式:对象数组格式:对象数组缩略格式:读取yaml数据编写yaml文件读取单一数据读取二级数据读取数组数据读取服务器端口号读取对象...
    99+
    2024-04-02
  • 【MySQL基础教程】DQL语句详细介绍
    前言 本文为 【MySQL基础教程】DQL语句 相关内容介绍,下边具体将对DQL语句基本语法,基础查询,条件查询,聚合函数,分组查询,排序查询,分页查询,相关案例,执行顺序等进行详尽介绍~ 📌博主主页:小新要变强 的主页 ...
    99+
    2023-08-25
    java mysql
  • Kotlin 基础语法实例详解
    Kotlin 基础语法实例详解包定义和引入Java一样,在文件开头, 行结束不需要” ; “package com.test.helloimport android.os.Bundle...
    99+
    2023-05-31
    kotlin 基础语法 实例详解
  • Python语法概念基础详解
    目录Python之禅:Python基础:1.进制转换:2.数据类型:3.单双引号转义字符的使用:4.单双三引号的转义换行:5.字符串的运算:6.组的概念与含义:7.集合:8.系统关键...
    99+
    2024-04-02
  • Python基础篇-Python基础语法
    为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname...
    99+
    2023-01-31
    基础 语法 Python
  • Python基础学习:try...except...的详细用法
    我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try...
    99+
    2023-09-22
    python 学习 开发语言
  • Java入门级基础教学(史上最详细的整合)
    目录 一:基础语法 1.“Hello word” 2.Java的运行机制 3. Java基本语法 1.注释、标识符、关键字 2.数据类型(四类八种) 4.类型转换 1.自动转换  2.强制转换 5.常量和变量 1.常量 2.变量 3.变量的...
    99+
    2023-09-01
    java 开发语言
  • java基础详细笔记之异常处理
    目录异常概述常见异常的举例  空指针异常NullPointerException数组角标越界异常ArrayIndexOutOfBoundsException &n...
    99+
    2024-04-02
  • Python入门之基础语法详解
    目录一、我的经历及目标二、Python简介三、Python基础语法3.1行和缩进3.2Python注释3.3Python空行3.4同一行显示多条语句3.5print输出3.6多个语句...
    99+
    2024-04-02
  • Python基础语法之容器详解
    目录Python基础语法-容器1.列表(list)1.1 列表基本概念1.2 获取元素1.3 增、删、改1.3.1 增 - —增加元素1.3.2 删 — 删除元素1.3.3 改—改变...
    99+
    2024-04-02
  • 详解Mysql基础语法的使用
    MYSQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作