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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值