Java中实时读取yaml文件

【Java】java读取yaml文件、java读取xml文件、java读取properties文件 【代码】【Java】java读取yaml文件、java读取xml文件、java读取properties文件。 阅读详情

注意:此种方式在修改yml文件之后就会立即读取到新的值,不需要重启服务,但不重启会导致后台和前台拿到的数据不一致,谨慎使用

引入snakeyaml

<dependency>
     <groupId>org.yaml</groupId>
     <artifactId>snakeyaml</artifactId>
     <version>1.23</version>
</dependency>

application.yml

spring:
    profiles:
        #环境
        active: dev

application-dev.yml

#微信公众号 (测试号)
wechat:
  appId: wxh123242hh3h25

读取yaml工具类

package com.ainsg.apps.aop.common.utils;

import org.apache.ibatis.io.Resources;
import org.yaml.snakeyaml.Yaml;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;

/**
 * 读取 yml 工具类
 *
 * @author: ChenRuiYao
 * @since: 2020-07-30 09:35
 * @Version: 1.0
 */
public class YamlUtil {

  /**
   * 读取 ymal
   *
   * @param path 需要读取的文件路径
   * @return Map
   */
  public static Map getReadAbleYaml(String path) {
    Yaml yaml = new Yaml();
    Map obj = null;
    InputStream ins = null;
    try {
      ins = Resources.getResourceAsStream(path);
      obj = (Map) yaml.load(ins);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (ins != null) {
          ins.close();
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    return obj;
  }
}

应用

package com.ainsg.apps.aop.modules.sys.controller;

import com.ainsg.apps.aop.common.utils.YamlUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequestMapping("/yaml")
public class YamlController {
  /**
   * 获取对应环境中的 appid (wechat.appId)
   *
   * @author: ChenRuiYao
   * @since: 2020/7/30  16:04
   */
  @GetMapping("/getAppId")
  @ResponseBody
  public String getAppId() {
    String active = getEnv();
    Map env = YamlUtil.getReadAbleYaml("application-" + active + ".yml");
    Map wechat = (Map) env.get("wechat");
    String appId = wechat.get("appId").toString();
    return appId;
  }

  /**
   * 获取 application.yml 中的环境信息 (spring.profiles.active)
   *
   * @author: ChenRuiYao
   * @since: 2020/7/30  16:04
   */
  @GetMapping("/getEnv")
  @ResponseBody
  public String getEnv() {
    Map properties = YamlUtil.getReadAbleYaml("application.yml");
    Map spring = (Map) properties.get("spring");
    Map profiles = (Map) spring.get("profiles");
    String active = profiles.get("active").toString();
    return active;
  }
}
Java中读取YAML文件配置信息 是 Spring Boot 提供的一个强大注解,用于将外部配置文件(如 YAML 或 properties 文件)中的属性值绑定到 Java 对象上。它是 Spring Boot 外部化配置的核心功能之一。 阅读详情

相关推荐

【Spring Boot 3】【YAML】读取YAML文件

本文介绍开发Spring Boot应用如何读取resources目录下YAML格式文件的内容,注意并不是介绍使用@Value或读取或配置文件,而是读取额外的YAML格式文件,这些文件中的数据也并不一定用于应用配置。本文介绍两种读取YAML使用 Jackson使用 SnakeYaml本文仅说明了读取resources目录下YAML格式文件内容,实际开发中YAML。

又言又语 1195

spring启动时候运行的方法

package com.wkx.test.springStart; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import ...

chougaidou0855的博客 402

Golang配置管理库viper

viper是一个golang配置管理库,很多项目都使用viper来构建,例如:docker、Hugo等等。

geek99_guo的博客 242

java .jar包内yml配置文件自动在线修改更新

打包后的jar应用程序,可能会遇到需要修改jar包中的yml配置文件,但是不需要重新打包,下面分享一下自动修改方法 本文采用java官方jar工具和配合shell脚本自动修改jar包的配置文件后自动更新到jar包。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 2053

删除win10电脑U盘使用记录

手工删除:和查看的方法类似,分三步,缺一不可,顺序也不能反! 第一步 设置环境变量,变量名为“devmgr_show_nonpresent_devices”,值为“1”。 第二步 打开设备管理器,勾上“查看”菜单中的“显示隐藏设备”。如果之前已经打开设备管理器,则要关了,重新打开。 第三步 清除“磁盘驱动器”、“存储卷”、“通用串行总线控制器”3个栏目下所有的灰色的图标,注意是所有!右键点击灰色图标,然后选择“卸载”。 成功 :结果USBSTOR 没有了 ...

qq_40544338的博客 2万+

【零基础入门哈希签名架构,从Lamport到SPHINCS+】第二集 哈希签名树 Merkle Tree Authentication

在第一集中,我们一直忽略了一个问题。设想一下,假如有一个Hacker(黑客),在截获到Sender发送给Receiver的公钥之后,把这个公钥改成Hacker自己的公钥,然后再发给Receiver,那么Receiver就会误认为这是Sender的公钥。所以我们之前所说放方案,其安全性都需要建立在一个前提下:Receiver需要确认公钥确实是Sender发出的。

m0_50572808的博客 2453

java修改配置文件参数_java 修改配置文件不重启

/*** 读取属性配置文件* @param key 键* @return*/public static String getProperties(String key) {Properties props = new Properties();String path = Thread.currentThread().getContextClassLoader().getResource("").g...

weixin_39981093的博客 465

Qt思岚激光雷达

Qt关于思岚激光雷达研究示例,本示例采用qt界面开发,可以串口也可以tcp进行设备连接。接收数据进行相关的数据进行绘图, 这种雷达可以用于大屏触摸场景,会场互动触摸场景开发。 #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QTimer> #include <QWidget> #include "lidarmgr.h" namespace Ui { class MainWidget; } class MainWidget.

cqltbe131421的博客 1598

读取并修改yml文件中mybatis中数据库连接设置

读取并修改yml文件中mybatis中数据库连接设置 public void readAndWriteProperties(){ try { //TableDao为yml文件所在模块的类 URL url = TableDao.class.getClassLoader().getResource("application.yml"); DumperOptions dumperOptions = new Dumper

likearis的博客 1212

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

pytorch 51 GroundingDINO模型导出tensorrt并使用c++进行部署,53ms一张图

博主基于https://github.com/hpc203/GroundingDINO-onnxrun项目分享的onnx c++推理代码,修改为GroundingDINO模型的tensorrt推理代码。对于600x400的输入,在3060显卡下,cuda 12.1,TensorRT-10.4.0,window环境下53ms处理完一张图片。

a486259的博客 1221

kafka实时读取sqlserver数据_flink_sql_client 1.10 与 hive集成 读取实时数据

很期待用纯sql的形式来处理流式数据,flink 1.10推出了生产可用的 Hive 集成,拥有了更强的流式 SQL 处理能力。这次我们就来尝试一下啦~~【本文大纲】1、环境准备2、SQL Client与hive集成配置3、用SQL Client读取kafka数据1、环境准备相关软件版本:linux版本:centos 6.5Java版本:jdk1.8Hive版本:hive-2.3.4Ha...

weixin_42512509的博客 632

【人工智能之深度学习】23. 推荐系统升级实战:LightGCN重构协同过滤全流程(Amazon-Beauty数据集+完整代码)

摘要:传统协同过滤(如矩阵分解)在电商推荐中存在三大痛点:忽略用户-物品高阶关联、交互数据稀疏导致冷启动、特征工程依赖人工设计。本文基于Amazon-Beauty数据集(含20万+用户交互),用LightGCN图神经网络重构推荐系统:1)构建用户-物品二部图,通过3层图卷积捕捉“用户→物品→用户”的多跳关联;2)采用BPR负采样损失优化嵌入学习,缓解数据稀疏;3)端到端输出用户/物品嵌入,无需人工特征。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1494

SpringCloud Alibaba - Nacos 作为配置中心 & 读取Yaml配置信息

通过本系列的前篇文章: 《SpringCloud Alibaba - Nacos 作为配置中心 & 读取Properties配置信息》 在之前文章中我们学习到了SpringCloud Alibaba读取Nacos Config内定义的properties类型的配置文件信息,并且使用Nacos Console进行修改配置信息后可以在应用程序内实时...

恒宇少年De成长之路 4537

Aurix TC3xx系列MCU DMA模块配置方法(二)

本文主要基于英飞凌Aurix TC3xx系列MCU,通过EB tresos配置工具,介绍DMA驱动模块的配置方法。

m0_38045338的博客 2850

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1671

adk-java工具集详解:从McpTool到GoogleSearchTool的应用技巧

adk-java是一个功能强大的Agent开发工具集,提供了丰富的工具组件帮助开发者快速构建智能代理应用。本文将详细介绍McpTool和GoogleSearchTool这两个核心工具的使用方法和实用技巧,帮助新手用户快速上手并掌握这些工具的应用场景。 ## 一、McpTool工具集:文件系统交互的终极解决方案 McpTool(Model Context Protocol Tool)是adk-j

gitblog_01045的博客 911

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java读取YAML文件

Java读取YAML文件是一个常见的需求,选择合适的库和掌握一些高级技巧可以大大提高开发效率。无论是使用Jackson、SnakeYAML还是Spring Boot,都有其独特的优势和适用场景。希望本文的介绍能够帮助你更高效地处理YAML文件。

专注于全栈开发领域 1591

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java读取Yaml文件

网上查了大部分资料,读取yaml文件有两种方式: (1)利用spring的@Value(${})的方式,但是这种方式往往要配合Spring容器去做。 (2)另一种方式脱离Spring容器,采用流的方式读取yaml文件,并生成java对象 每种方式都有其应用的场景。我根据(2)的方式简单写了一个读取Yaml的配置类,通过key的方式获取值。 例如:application.yml a: ...

小末的博客 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python读取写入yaml文件

一、yaml文件介绍 yaml是一个专门用来写配置文件的语言。 1. yaml文件规则 区分大小写; 使用缩进表示层级关系; 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元素左侧对齐; 文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注; 注释标识为# 2. yaml文件数据结构 对象:键值对的集合(简称 "映射或字典") 键值...

专业资深测试者,多年质量管理经验,浪迹网游、金融、房产、招聘及海外行业多年,CDSN百万原创阅读,公众号500+原创文章,提倡测试左移、风险、越权、假设、探索测试,喜欢用抽象思维模式思考和技术探讨,自动化、性能、安全测试实施者,感谢关注! 1万+

Java读取/写入Yaml配置文件

JYaml文件流读取/写入Yaml配置文件 yaml配置文件格式规范:- 表示sequence(list列表结构),: 表示map键值对 #以下是示例yaml结构 age: 23 children: - age: 8 name: mary1 sex: man - age: 9 name: simon2 sex: fatel name: simon.zhang sex: man 1.准备工作,创建Persion实体类 packa.

az44yao的专栏 2522

Java 实现yaml配置文件的读取

常用的配置文件有yaml,xml,properties,json等,今天主要想记录下yaml 文件的读取。废话不多说,直接上代码。 package com.ex.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.net.URL; import java.util.Ma...

子非鱼,安知鱼之乐 4943

java yaml文件读取和属性修改

修改前配置文件 src/main/resources/conf/config.yaml sys: info: name: "macOs" version: "10.15.4" cpu: name: "Intel Core i5" counts: 4 hz: "1.4GHz" cnName: "英特酷睿i5" test: name: 123 alist: - java - python - golang 使用p.

qq_33183022的博客 7503

java读取yaml文件

文章目录yaml介绍使用方法 yaml介绍 YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。...

LTC_1234的博客 1389

YAML文件的读取

比如说,测试环境、预生产环境和生产环境的地址,mysql的地址,帐号,密码等信息。因为部署的环境不同,所对的应内容就不同,在这种情况下就需要根据不同的部署环境配置不同的参数。2、如果yaml文件中包含多个不同类型的元素,可使用yaml.load_all()来解析全部文档;1、yaml文件中包含单一变量,可使用yaml.load()读取yaml文件;4、yaml文件中的字典格式:以键值对形式,冒号后面加空格;5、yaml文件中的列表格式,数组前面加’-‘,缩进的空格数量不作要求,可以1个,也可以多个;

Anny1118的博客 2095
上一篇: 封装axios
下一篇: 修改npm install时的版本号前缀
My_Java_Life
博客等级 码龄11年 39粉丝 61原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值