java boot项目读取yml配置信息

news2025/1/12 3:49:47

之前 我们讲过 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下标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabView中顺序结构的使用

LabView中的顺序结构能够保证程序按照一定的顺序运行。LabView中的顺序结构分为平铺式顺序结构和层叠式顺序结构两种。 1 平铺式顺序结构 平铺式顺序结构包括一个或多个顺序执行的子程序框图,这种框图也被成为“帧”,程序按照帧为单位,以从…

MKS SERVO4257D 闭环步进电机_系列3 串口(RS485)指令说明

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&am…

ATA-3000系列功率放大器在精密微流体控制中的典型应用

ATA-3000系列功率放大器在精密微流体控制中的典型应用 压电陶瓷精密微流体控制应用: 精密微流体控制在医药配比、遗传基因与生物工程、航空航天、军工国防等方面具有广泛的应用,特别是在大流量伺服阀先导控制领域,具有重要作用。随着压电陶瓷…

TPO69 01|Why Snakes Have Forked Tongues P5P6|阅读真题精读|17:50~19:35

17:00~17:50 吃饭 目录 P56 生词 段落大意 P5段落大意 P6段落大意 题目 【5】事实信息题|定位准确非常重要✅ 【6】事实信息题|定位准确非常重要✅ 【7】推理题|文章是否提及|不要过度推理 【8】修辞目的题|举例一般为了说明✅ 【9】句子插入题|in other words|同义…

SpringCloud Alibaba Seata

SpringCloud Alibaba Seata Seata 基础 先看一个问题,引出Seata 单机单库(多表)处理事务示意图 分布式微服务架构下的数据库事务示意图 3. 梳理上图 用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持∶仓储服务∶对给定的商品扣除仓库/商品数量订单服务…

第10届蓝桥杯Scratch国赛真题集锦

编程题 第 1 题 问答题 捉迷藏之 题目说明 编程实现:小猫随机躲在6个按固定位置排列的前景角色任一个的后面,只露出一点点痕迹。具体要求: 1).添加任意1个背景,保留小猫角色,从角色库中挑选6个角色作为前景角色(小猫将躲在它们的后面) 2).6个前景角色按照两行三列的方式以固…

从数据工程师到提示工程师:使用AI解决数据准备任务

数据工程占据了数据科学过程的很大一部分。在CRISP-DM中,这个过程阶段被称为“数据准备”。它包括数据摄取、数据转换和数据质量保证等任务。在本文中,我们使用ChatGPT和Python解决了典型的数据工程任务。通过这样做,我们探索了数据工程与新的…

Redis集群安装之分片集群

1.为什么使用分片集群 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题高并发写的问题 哨兵模式本质是依旧是主从模式,在主从模式下我们可以增加slave节点来拓展读并发能力,但是没办法扩展写能力…

项目笔记-瑞吉外卖(全)

文章目录 1.业务开发day011.软件开发整体介绍2.项目整体介绍:star:3.开发环境搭建4.登录功能:star:4.1代码实现 5.退出功能6.页面效果出现 day021.完善登录功能2.新增员工功能3.启用禁用员工信息:star:(自定义消息转换器使用)4.编辑员工信息 day031.公共字段自动填充2.新增分类…

第11届蓝桥杯Scratch国赛真题集锦

编程题 第 1题 问答题 3D打印小猫 题目说明 背景信息:3D打印技术,它与普通打印工作原理基本相同,打印机内装有液体或粉未等“打印材料”,与电脑连接后,通过电脑控制把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。 编程实现:通过滑杆控制小猫造型变化,按下…

聚类算法以及聚类算法模型评估的介绍

一、聚类算法的介绍 1.什么是聚类算法 聚类算法是一类无监督学习算法,用于将数据集中的对象分组(或聚类)成具有相似性的集合。聚类算法不依赖于预定义的类别标签,而是根据数据的内在特点将相似的数据点聚集在一起。聚类算法的目…

分布式网络通信框架(三)——protobuf使用案例

例子1 test.proto文件如下: syntax "proto3"; // 声明了protobuf版本package fixbug; // 声明了代码所在的包(生成C代码后就是namespace 名字)// 定义登录消息类型 message LoginRequest {string name 1; // 1 代表name是这个m…

详解uni-app项目运行在安卓真机调试

详解uni-app项目运行在安卓真机调试 uni-app项目运行在安卓真机调试 文章目录 详解uni-app项目运行在安卓真机调试前言为什么要用真机调试?真机调试操作步骤总结 前言 UNI-APP学习系列之详解uni-app项目运行在安卓真机调试 为什么要用真机调试? 因为安…

mybatis-plus实现非法sql拦截(防止全表更新与删除)

文章目录 什么是非法sql:拦截的意义是:使用:1、在pom文件中添加依赖2、注入MybatisPlusInterceptor类,并配置BlockAttackInnerInterceptor拦截器 测试: 什么是非法sql: 不带where子句的delete和update&…

C++反向迭代器

C反向迭代器 📟作者主页:慢热的陕西人 🌴专栏链接:C 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容介绍反向迭代器的概念和模拟实现一个通用的反向…

HTB-Escape

HTB-Escape 信息收集立足sql_svc -> RyanRyan -> Administrator扩展NTLM简单介绍 信息收集 可以从中获取两个域名。 看看 rpc服务是否有可以收集的信息。 看看samba。 rpc的Public共享文件有一个关于SQL Server的pdf。 阅读它! 从中能得到几个用户名…

unix环境高级编程 第一章 UNIX基础知识 Go实现代码

ls命令的Go语言实现 package mainimport ("fmt""os" )func main() {if len(os.Args) ! 2 {panic("参数数量不足")}targetPath : os.Args[1]if dirList, err : os.ReadDir(targetPath); err nil {for _, dirInfo : range dirList {fmt.Println(…

SpringBoot集成ElasticSearch

文章目录 前言一、ElasticSearch本地环境搭建二、SpringBoot整合ElasticSearch1.pom中引入ES依赖2.application.yaml配置elasticsearch3.ElasticSearchClientConnect连接ES客户端工具类4.ElasticSearchResult封装响应结果5.Person实体类6.Person实体类7.ElasticsearchControlle…

OS之磁盘调度算法

目录 一、先来先服务(FCFS) 基本思想 案例 二、最短寻道时间优先(SSTF) 基本思想 案例 饥饿现象 三、扫描算法(SCAN) 基本思想 案例 四、循环扫描算法(CSCAN) 基本思想 案例 一、先来先服务(FCFS) 基本思想 根据进程请求访问磁盘的先后次序来进行调度 案例 二、…

数据结构与算法04:队列

目录 什么是队列? 循环队列 双端队列 阻塞队列 队列的应用场景 每日一练 什么是队列? 在 上一篇文章 中讲述了栈:先进后出就是栈,队列刚好相反,先进先出的数据结构就是队列,还是拿纸箱子来举例&…