之前 我们讲过 boot的配置文件格式主要有三种
application.properties
application.yml
application.yaml

我们说推荐用
application.yml
其实从 xml 到 yml 都是要系统去读取他的配置信息 今天 我们就来写一下 在java中读取 yml的配置

这里 我在 yml中多加两个配置
代码如下

min: 1
users:
  name: 小猫猫

在这里插入图片描述

然后 我们实在在 启动类同目录下创建 controller 文件夹 然后下面创建一个UserController类 这里 我已经建好了
然后在UserController中编写代码如下

package com.example.threshold.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

//声明Controller控制器
@RestController
@RequestMapping("/user")
public class UserController {

    @Value("${min}")
    private String minput;

    // 设置一个 GET接口  子路径get  接受一个id参数  id要跟在路径后面
    @GetMapping
    public String getId() {
        return minput;
    }
}

这里 我们通过Value标识符 读取了配置文件中的min 定义了一个字符串类型的minput来接受返回的值
因为这是我们自己定义的一个值 他只会帮我读成字符串 所以要用字符串类型接

然后 我们定义了一个 get的方法 向外返回拿了配置文件中min值的minput

然后 我们启动项目 访问暴露的接口
在这里插入图片描述
在这里插入图片描述

可以看到 min的值 我们就拿到了

那么 如果是这样的两级数据呢?
在这里插入图片描述

其实很简单 就像取json的值一样
XX.XX
我们将UserController类的代码修改如下

package com.example.threshold.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

//声明Controller控制器
@RestController
@RequestMapping("/user")
public class UserController {

    @Value("${users.name}")
    private String UserName;

    // 设置一个 GET接口  子路径get  接受一个id参数  id要跟在路径后面
    @GetMapping
    public String getId() {
        return UserName;
    }
}

取users下的name 那就直接 users.name 如果还有层级 那就继续往后加点
然后 我们重新启动 访问接口
在这里插入图片描述
也是没有什么问题

然后 我们在yml中加一个

list:
  - eml
  - ts
  - vue

数组类型的
在这里插入图片描述
我们用下标访问 改写 UserController 代码如下

package com.example.threshold.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

//声明Controller控制器
@RestController
@RequestMapping("/user")
public class UserController {

    @Value("${list[0]}")
    private String ListTom;

    // 设置一个 GET接口  子路径get  接受一个id参数  id要跟在路径后面
    @GetMapping
    public String getId() {
        return ListTom;
    }
}

直接获取list的0下标
然后返回 我们访问接口
在这里插入图片描述
成功拿到了list的0下标

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐