• 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下标

  • 相关阅读:
    【算法优选】 滑动窗口专题——贰
    Android移动应用开发之界面跳转
    类和对象(6):const成员,&/const &重载
    【漏洞复现-骑士cms-代码执行】vulfocus/骑士cms_cve_2020_35339
    C++中map和set的区别
    二十三种设计模式全面解析-职责链模式(Chain of Responsibility Pattern):解放代码责任链,提升灵活性与可维护性
    MySQL —— 排序,分页
    测试员:“我有五年测试经验”HR: “不,你只是把一年的工作经验用了五年”
    基于Skeleton的手势识别:SAM-SLR-v2
    鸿蒙会成为安卓的终结者吗?
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/130914016