Spring Boot 基础( 一 ) YAML配置文件详解

Spring Boot 使用一个全局的配置文件,配置文件名是固定的

application.properties / application.yml

  • 配置文件的作用:修改SpringBoot自动配置的默认值

YAML(YAML Ain’t Markup Language)

  • YAML A Markup Language:是一个标记语言
  • YAML isn’t Markup Language:不是一个标记语言;

    ​ YAML是 *YAML不是一种标记语言“* 的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

    ​ 它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。

标记语言:

  • 以前的配置文件;大多都使用的是 xxxx.xml文件;
  • YAML:以数据为中心,比json、xml等更适合做配置文件;

YAML:配置例子

server:
  port: 8080

XML:

<server>
    <port>8080port>
server>

YAML语法

  1. 基本语法

    key:空格 value 表示一对键值对 key:空格必须有

    以空格的缩进 来控制层次关系 只要是左对齐的一列配置数据,都是同一个层级的配置

    server:
     port:
     servlet:
       context-path:
       context-parameters:
    
    spring:
     application:
       name:  
    • 其中 serverspring 是同一层级的,都自为一个配置数据对象
    • portservlet 是server对象里的一个属性配置 是同一层级的配置数据
      • port为简单数据类型的一个配置属性
      • servlet 是一个对象类型的属性
    • context-pathcontext-parameters 都是 servlet里的属性配置 是同一层级的配置数据
  2. 值的写法

    key: 普通的配置值(数字,字符串,布尔,小数…)

    注:

    • 字符串默认不用加上单引号或者双引号;

    • “demo \n 01”:双引号;不会在解析时自动转义字符串里面的特殊字符;特殊字符会用作本身想表示的意思

      name: "demo \n 01" #输出为-demo 换行 01
    • ‘demo \n 02’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

      name: 'demo \n 02' #输出为-demo \n 02

    yaml里对象、map、数组配置的写法

    对象和map的写法相同

    • 对象:属性名: 值
    • map:key: value
    1. 标准写法

      project: 
      id: PM201807190001
      name: 测试项目
      context:该项目是个示例项目
    2. 行内写法

      project: {id: PM201807190001,name: 测试项目,context: 该项目是个示例项目}

    数组和集合(List、Set)配置的写法

    数组用 -(空格)值 表示数组中的一个元素

    1. 标准写法

      projects: 
      - 项目1
      - 项目2
      - 项目3
    2. 行内写法

      projects: [项目1,项目2,项目3]

    注:yaml支持对象里的 复杂类型配置

    project: 
    id: PM201807190002
    isOver: false
    age: 2
    unit: year
    principalUsers: 
        - {name: zhangsan,id: user_01}
        - {name: lisi,id: user_02}
    property: 
        recipe: [cement,brick,floor]

你可能感兴趣的:(Spring,Boot,Spring,Boot,YAML,配置文件,YAML复杂配置,application.yml)