• java boot项目读取yml配置信息


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

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

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

    min: 1
    users:
      name: 小猫猫
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    然后 我们实在在 启动类同目录下创建 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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    这里 我们通过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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

    然后 我们在yml中加一个

    list:
      - eml
      - ts
      - vue
    
    • 1
    • 2
    • 3
    • 4

    数组类型的
    在这里插入图片描述
    我们用下标访问 改写 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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

  • 相关阅读:
    HDFS工作流程和机制
    第1章Linux基础篇-Linux入门
    C#NPOI操作Excel,实现Excel数据导入导出(支持多个sheet)
    亚马逊API接口大全
    BitBake使用攻略--BitBake的语法知识二
    React源码分析7-state计算流程和优先级
    力扣刷题-数组-二分查找总结
    elasticsearch的安装及使用
    Stable Diffusion 模型下载:FenrisXL(芬里斯XL)
    2022百度之星程序设计大赛 - 复赛 1003 最大值
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/130914016