yaml语法格式,springboot中yaml的使用

  • yaml
    • 1.yaml语法格式
    • 2.数据类型表示
  • springboot中yaml的使用
    • 1. @ConfigurationProperties注解及bean的创建
    • 2.编写controller
    • 3.配置application.yaml配置文件
    • 4.pom.xml中开启yaml提示
    • 运行查看

yaml

YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

1.yaml语法格式

  • key: value;kv之间有空格
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释
  • 字符串无需加引号,如果要加,'单引号"双引号表示字符串内容 会被 转义/不转义

2.数据类型表示

  • 字面量:单个的、不可再分的值。date、boolean、string、number、null
k: v
  • 对象:键值对的集合。map、hash、set、object
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或k:k1: v1k2: v2k3: v3
  • 数组:一组按次序排列的值。array、list、…
行内写法: k: [v1,v2,v3]
#或者
k:- v1- v2- v3

springboot中yaml的使用

1. @ConfigurationProperties注解及bean的创建

@ConfigurationProperties 注解,用于将properties文件或者yml文件配置绑定到javabean组件上面。

创建一个Person的bean组件:

package com.robin.boot.bean;import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;@ConfigurationProperties(prefix = "person") // 将application.yaml中前缀为person的数据绑定到person的bean组件中
@Component // 将person的javabean当作一个容器中的组件
@ToString
@Data
public class Person {private String userName;private Boolean boss;private Date birth;private Integer age;private Pet pet;private String[] hobbies;private List<String> animal;private Map<String, Object> score;private Set<Double> pinMoney;private Map<String, List<Pet>> allPets;
}

创建依赖的Pet的类:

package com.robin.boot.bean;import lombok.Data;
import lombok.ToString;@ToString
@Data
public class Pet {private String name;private int age;
}

2.编写controller

使用@RequestMapping注解,将指定的url路径请求映射做出响应:

package com.robin.boot.controller;import com.robin.boot.bean.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@Autowired // 自动装配Person person;@RequestMapping("/test") // 路径请求映射public Person person(){return person;}
}

3.配置application.yaml配置文件

使用yaml语法格式,将对应的Person的属性写入并且绑定:

# yaml表示以上对象
person:userName: robinboss: truebirth: 2001/08/09age: 21pet:name: 小白age: 3hobbies: [下棋,长跑,编程]animal:- 小狗- 小猫- 小猪score: {操作系统:88,数据结构:92,计网:97,计组:91}pinMoney:- 1500.01- 2009.99allPets:sick:- 小狗:name: 小黄age: 2healthy:- 小猫: {name: 胖橘,age: 4}- 小猪: {name: 大花,age: 1}

4.pom.xml中开启yaml提示

使用到的lombok和yaml提示的pom.xml配置:

     <!--  Lombok      --><dependency><groupId>cn.itlym.shoulder</groupId><artifactId>lombok</artifactId><version>0.1</version></dependency><!--   开启yml提示     --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

过滤资源 configuration-processor:

    <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--     将yml提示的configuration-processor 取消避免打包到jar中       --><configuration><excludes><exclude><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></exclude></excludes></configuration></plugin></plugins></build>

运行查看


yaml语法格式,springboot中yaml的使用相关推荐

  1. SpringBoot中yaml配置

    yaml是一种可读性高,用来表示数据序列化的格式.在SpringBoot中也可以使用properties,但是推荐使用yaml. 在SpringBoot中使用一种全局的配置文件,其名称是固定的为app ...

  2. python中while语法格式_python中常见的三种句型if,while,for

    原博文 2016-06-28 23:26 − 1.if语句: 特别说明:条件后面的冒号不能少,同样必须是英文字符. 特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格.python用这种 ...

  3. ansible中yaml语法应用

    4.yaml语法应用 ansible的playbook编写是yaml语言编写,掌握yaml语法是编写playbook的必要条件,格式要求和Python相似,具体教程参考如下 yaml语言教程 附上一个 ...

  4. SpringBoot yaml语法详解

    SpringBoot yaml语法详解 1.yaml基本语法 2.yaml给属性赋值 3.JSR303校验 4.SpringBoot的多环境配置 1.yaml基本语法 通常情况下,Spring Boo ...

  5. k8s查看pod的yaml文件_【大强哥-k8s从入门到放弃04】Yaml语法解析

    依然小福利[Python-零基础入门]2020感谢走进我的生命,Python!(已更新至206集)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 一.K8S名称 ...

  6. Linux九阴真经之九阴白骨爪残卷5(ansible用法二之Playbook和YAML语法)

    playbook是由一个或多个"play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲,所谓task无 ...

  7. yamlip 安装_SpringBoot中yaml配置对象

    转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...

  8. MySQL创建视图的语法格式

    视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...

  9. 创建mysql视图语法正确的是_MySQL创建视图的语法格式

    视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...

最新文章

  1. 2021年大数据HBase(六):HBase的高可用!【建议收藏】
  2. 立体匹配成像算法BM,SGBM,GC,SAD一览
  3. 【Linux系统编程】进程间通信概述
  4. leetcode------Remove Duplicates from Sorted Array II
  5. LeetCode 646. Maximum Length of Pair Chain
  6. 邮箱不可用 550 User has no permission
  7. micropython入门教程-【ESP8266】MicroPython的快速入门教程
  8. 3.6 Spark安装与体验
  9. 第六节 静态的(static)和单例模式
  10. (笔记) SpringCloud之Hystrix断路器 属性详解
  11. 提取win11最新等线字体1.18制作的magisk模块,有常规,加粗,和细体三个字重。
  12. JAVA集合容器源码解析
  13. .net core 中使用httpclient下载文件
  14. SQL Server新增字段并添加描述
  15. k2p openwrt固件_自编译OpenWrt 属于自己的固件
  16. formality的一点经验总结
  17. 基于EasyNVR实现RTSP_Onvif监控摄像头Web无插件化直播监控
  18. 穴位保健:自我按摩赶走亚健康
  19. Emc服务器怎么用u盘装系统,用u盘装系统的具体方法
  20. 蒋涛作序盛赞Leo新作为 程序员职场实用百科全书 —— 程序员羊皮卷 连载 1

热门文章

  1. 计算机符号系统c,附录c符号计算系统mathematica的.doc
  2. 【面试准备之】HR面试时100个关键问题
  3. 用Java求质数(素数)等问题
  4. 2017新媒体运营升职加薪指南:从内容到数据,如何走好新媒体的进阶之路?
  5. 读取太阳紫外辐照谱数据
  6. impala创建kudu表过程,并发时异常
  7. Linux网络应用实验报告,Linux网络实验报告.doc
  8. ogg转mp3格式转换器
  9. 2020你好,2020再见
  10. 分式加法JAVA程序_十五:实战2-分式计算器