使用 Spring Boot 的yml配置文件读取方式

news/2024/9/19 2:44:31/文章来源:https://www.cnblogs.com/his365/p/18417158

在 Java 项目中读取 YML(YAML)配置文件有多种方式,尤其在使用 Spring Framework(包括 Spring Boot)时,更是提供了丰富的支持。以下是几种常见的方式来读取 YML 配置文件:

1. 使用 Spring Boot 的自动配置

Spring Boot 提供了对 YML 文件的自动化支持,这也是最常用的方式。

1.1 使用 @Value 注解读取配置

你可以使用 @Value 注解读取 YML 文件中的单个配置属性。

application.yml

app:name: MyApplicationdescription: This is a sample application.

Java类

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AppConfig {@Value("${app.name}")private String appName;@Value("${app.description}")private String appDescription;// Getterspublic String getAppName() {return appName;}public String getAppDescription() {return appDescription;}
}

1.2 使用 @ConfigurationProperties 注解读取配置

对于复杂或结构化的配置,推荐使用 @ConfigurationProperties 注解。

application.yml

app:name: MyApplicationdescription: This is a sample application.server:port: 8080host: localhost

Java类
java复制代码import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private String description;
private Server server;

public static class Server {private int port;private String host;// Getters and Setterspublic int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getHost() {return host;}public void setHost(String host) {this.host = host;}
}// Getters and Setters
public String getName() {return name;
}public void setName(String name) {this.name = name;}public String getDescription() {return description;
}public void setDescription(String description) {this.description = description;
}public Server getServer() {return server;
}public void setServer(Server server) {this.server = server;
}

}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win7玩游戏Ctrl和空格不能一起按的解决方案

前几天在Windows7上玩《Minecraft》的时候,发现Ctrl和空格不能一起按,就开始研究,找到一个解决方案。 首先打开控制面板,点击更改键盘或其他输入法,就会进入文本服务与输入语言。点击更改键盘,进入高级键设置选项卡,点击下面的快捷键,再点击更改按键顺序。如图,随便把…

深度学习 初识学习 9.16

什么是SVM SVM(Support Vector Machine,支持向量机)是一种监督学习模型,用于分类和回归分析。其基本思想是找到一个超平面,使得两类样本在该超平面上的间隔最大化。这个间隔被称为“最大间隔”,而位于最大间隔边界上的样本点则被称为“支持向量”。 SVM的关键概念:超平面…

C++信奥老师解一本通题 1370:最小函数值(minval)

​ 【题目描述】有n个函数,分别为F1,F2,...,Fn。定义Fi(x)=Ai*x*x+Bi*x+Ci(x∈N∗)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的mm个(如有重复的要输出多个)。【输入】第一行输入两个正整数n和m。 以下nn行每行三个正整数,其中第ii行的三个数分别位Ai、Bi和C…

反DDD模式之关系型数据库

本文书接上回《图穷匕见-所有反DDD模式都是垃圾》,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新; DDD框架源码(.NET、Java双平台); 加群畅聊,建模分析、技术实现交流; 视频和直播在B站。 背景 我在与开发者交流关于DDD的建模思路时,往往会遇到一个难题,就是…

常回家看看之house_of_catWO

house_of_cat 前言: house of cat 这个利用手法和前面提到的 house of kiwi ,和 house of emma 利用的手法是一个链子,当程序无法通过main函数返回时候,或者程序不能显性调用exit函数的时候,我们可以通过 __malloc_assert 来刷新IO流,当然这个函数在2.35之后移除了刷新IO…

C++11 线程同步接口std::condition_variable和std::future的简单使用sk

合集 - C++(1)1.C++11 线程同步接口std::condition_variable和std::future的简单使用09-17收起 std::condition_variable 条件变量std::condition_variable有wait和notify接口用于线程间的同步。如下图所示,Thread 2阻塞在wait接口,Thread 1通过notify接口通知Thread 2继续执…

安全:nftables:基础知识

一,policy: 1,原文档链接: https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/9/html/configuring_firewalls_and_packet_filters/assembly_creating-and-managing-nftables-tables-chains-and-rules_getting-started-with-nftables#con_basics-of-nft…

Leetcode 952. 按公因数计算最大组件大小

1.题目基本信息 1.1.题目描述 给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图: 有 nums.length 个节点,按从 nums[0] 到 nums[nums.length - 1] 标记;只有当 nums[i] 和 nums[j] 共用一个大于 1 的公因数时,nums[i] 和 nums[j]之间才有一条边。 返回 图中最大连…

Leetcode 19.删除链表的倒数第第N个结点

1.题目基本信息 题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/ 2.解题方法 2.1.解题思路 使用快慢指针 2.2.解题步骤 第一步,初始化快指针为head,慢指针指向一…

Leetcode 297. 二叉树的序列化与反序列化

1.题目基本信息 1.1.题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限…

曾亨瑾第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc/这个作业的目标 发布一篇随便简单介绍自己姓名 曾亨瑾学号 2022329301104一、自我介绍 1.基本信息 大家好,我是电气工程及其自动化(2)班的曾亨瑾,来自广东东莞。 2.兴趣爱好 我喜欢打羽毛球和慢跑(虽然都是…

2024软件工程第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 开发类“羊了个羊”消除类小游戏,并借助AIGC技术提高效率学号 052203132项目展示Github地址:https://github.c…