【微服务 从0开始 】Spring Cloud —— 比xml更适合的配置文件yaml

     阅读:19

在这里插入图片描述

🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

👀专栏介绍

【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

主要介绍Yaml配置文件

YAML

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

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

  • application.properties
  • application.yml

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

YAML 简介

YAML 的语法如下:

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。

约定:

  • k: v 表示键值对关系,冒号后面必须有一个空格
  • 松散表示,java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。

YAML 常用写法

YAML 支持以下几种数据结构:

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

普通值(字面量)

字面量是指单个的,不可拆分的值,例如:数字、字符串、布尔值、以及日期等。

在 YAML 中,使用“key:[空格]value”的形式表示一对键值对(空格不能省略)

字面量直接写在键值对的“value”中即可,且默认情况下字符串是不需要使用单引号或双引号的。

username: root

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

name='zhangsan \n lisi'

输出:zhangsan \n lisi

若字符串使用双引号,则会转义特殊字符,\n代表换行,输出:
在这里插入图片描述

name1: zhangsan 
name2: 'zhangsan \n lisi'
name3: "zhangsan \n lisi" 
age: 18
flag: true 
date: 2022/04/21

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

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

  • 普通写法 ,使用缩进表示对象与属性的层级关系。
person: 
  name: zhangsan 
  age: 20
  • 行内写法
person: {name: zhangsan,age: 20} #注意 name: value :后 面要有空格

数组、list、set

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

  • 普通写法
course: 
 - spring 
 - mybatis 
 - spring boot
  • 行内写法
course: [spring,mybatis,spring boot]

复合结构

以上几种数据结构可以任意组合使用,以实现不同的用户需求。
这里我把常用的几种已经写出来,以后忘了可以再参考一下

sb:
  username: 'abc \n hello' #字符串 
  password: 6564321 #字符串 
  birthday: 2011/12/23 #日期 
  books: #map 
    jsp: 36 
    html: 78 
    spring: 78 
  books2: {jsp: 56,spring: 65,mybatis: 98} #map 行内 
  person: #javabean 
    name: abc 
    age: 23 
  person2: {name: lily, age: 36 } #javabean行内 
  hobby: #数组 
    - jsp 
    - hibernate 
    - spring 
    - mybatis 
  list: # list集合 
    - 32 
    - 65
    - 98 
  set: #set 集合 
    - hello 
    - world 
  hobby2: [23,45,56] #数组 list set 行内 
  mapList: # 数组 list set 里存map 
    - jsp: 36 
      hibernate: 58 
    - html: 65 
      css: 98 
      js: 65
    - {vue: 36,react: 98}

YAML 组织结构

一个 YAML 文件可以由一个或多个文档组成,文档之间使用“—”作为分隔符,且个文档相互独立,互不干扰。如果 YAML 文件只包含一个文档,则“—”分隔符可以省略。
在这里插入图片描述