yml 配置文件语法

1. 概述

1.1 场景

在创建Sprint Boot 项目时,会自动创建 application.properties 配置文件,.yml 的诞生替代了它,并且配置起来更加简单。

在这里插入图片描述

1.2 优先级

  • 优先级从低到高(属性相同时,优先级高的 覆盖 优先级低的)
    • .yml
    • .yaml
    • .properties
  • 可通过下列方法进行验证
    在这里插入图片描述

2. 语法

2.1 普通数据

语法(推荐):

key: value
  • 注意: value 之前有一个 空格

示例代码:

name: zhangsan 

2.2 对象数据(Map)

语法(推荐):

key:
	key1: value1
	key2: value2
	...
  • 或者 key: {key1: value2, key2: value2 ...}
  • 注意:key 前面的 空格 个数不限定,在 yml 语法中,相同缩进代表同一个级别

示例代码:

student:
  name: zhangsan
  sex: nv
  age: 18

2.3 数组数据(List,Set)

语法(推荐):

key:
   - value1
   - value2
  • 或者 key: [value1, value2, ...]
  • 注意:value- 之间存在一个空格。

示例代码:

city:
	- shenzhen
	- hangzhou
	- wuhan

# 或者
city: [shenzhen, hagnzhou, wuhan]

# 集合中的元素是对象形式
person:
  - name: 小游子
    sex:age: 25

  - name: 小优子
    sex:age: 25

3. 实例

首先创建一个 SpringBoot 项目

3.1 数据准备 application.yml

  • 手动创建一个 application.yml 配置文件,用于验证的数据准备。
server:
  port: 8080

# 普通数据, 注意  空格。
name: zhangsan

# 对象数据, 注意 空格。
student:
  name: zhangsan
  sex: nv
  age: 18


# 数组数据
person:
  - name: 小游子
    sex:age: 25

  - name: 小优子
    sex:age: 25

3.2 数据验证 TestController.java

  • 创建一个 Controller 类,来对已配置的 application.yml 中的数据进行验证
package com.example.springbootdemo02.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


/**
 * 对 application.yml 中的配置的数据文件进行验证
 */
@Controller
public class Test01Controller {
    @Value("${name}")
    private String name;

    @Value("${student.name}")
    private String stuName;
    @Value("${student.sex}")
    private String stuSex;
    @Value("${student.age}")
    private int stuAge;

    @Value("${person[0].name}")
    private String perName;
    @Value("${person[0].sex}")
    private String perSex;
    @Value("${person[0].age}")
    private int perAge;


    @RequestMapping("test1")
    @ResponseBody
    private String test1() {
        System.out.println(name);
        return "普通数据";
    }

    @RequestMapping("test2")
    @ResponseBody
    private String test2() {
        System.out.println("姓名: " + stuName + "\t" +
                "性别: " + stuSex + "\t" +
                "年龄: " + stuAge);
        return "对象数据";
    }

    @RequestMapping("test3")
    @ResponseBody
    private String test3() {
        System.out.println("姓名: " + perName + "\t" +
                "性别: " + perSex + "\t" +
                "年龄: " + perAge);
        return "集合数据";
    }

}

3.3 数据访问 浏览器

  • http://localhost:8080/test1
  • http://localhost:8080/test2
  • http://localhost:8080/test3
发布了43 篇原创文章 · 获赞 32 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_34745941/article/details/103760459