当前位置: 首页 > news >正文

Spring Boot 配置文件

1. 配置文件的作用

配置文件主要是为了解决硬件编码带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,程序从配置文件中读取一些数据,并加载运行。

硬编码是将数据直接放在源代码中,如果把手机字体大小放在源代码中,那么所有用户使用的都是同一个字体大小,但是不同用户想要的字体大小可能会不相同,所以我们就可以把手机字体大小放在配置文件中,程序启动时,读取配置文件,以用户设置的字体大小来显示。使用配置文件,可以时程序完成用户和应用程序的交互,或者应用程序和其他应用程序的交互。

Spring Boot 支持并定义了配置文件的格式,很多项目或者框架的配置信息也放在配置文件中,例如:

  1. 项目的启动端口
  2. 数据库的连接信息(包含用户名和密码的设置)
  3. 第三方系统的调用密钥等信息
  4. 用于发现和定位问题的普通日志和异常日志等

 Spring Boot 支持三种配置文件:

  1. application.properties
  2. application.yml
  3. application.yaml

我们创建Spring项目时会默认生成一个application.properties配置文件

2. properties

2.1 properties基本语法

properties是以键值对的形式配置的,Key和Value之间使用 = 连接。

例如配置启动端口:

2.2 自定义配置 

Spring Boot配置中分为Spring配置,和自定义配置。Spring配置是官方定义好的方定义好的配置,例如这里的server.port,它的含义是设定好的,具体有哪些,可以在Spring官方网站中查询,自定义配置即程序员自己设定的配置。

2.3 获取配置内容

我们可以使用@Value获取配置的值:

注意使用格式。 

3. yml

3.1 yml 基本语法

yml是树形结构的配置文件,形式和HTML的标签嵌套相似,yml的基本语法是:"Key: Value"的形式,注意 冒号后要加空格。

运行程序:

可以看到端口号成功被改为9090 .

yml获取配置形式同样使用@Value注解,并且规则相同 

3.2 yml配置不同数据类型

yml可以指定配置的数据类型:

#字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
# 浮点数
float.value: 3.14159
# Null,~代表null
null.value: ~
# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty.value:

3.3 yml中单引号和双引号的区别

yml中字符串默认不用加上单引号或双引号,如果加上可以表示特殊含义:

获取这三个字符串,发现str3把 \n 理解为了回车。

  • 单引号会转义特殊字符,使其失去特殊功能,始终是⼀个普通的字符串
  • 双引号不会转义字符串⾥⾯的特殊字符,特殊字符会表⽰本⾝的含义

3.4  配置对象

yml中可以配置对象

注意,只能配置被Spring管理的对象

@ConfigurationProperties("student")
@Component
@Data
public class Student {private Integer id;private String name;private Integer age;
}

@ConfigurationProperties("student")的作用就是把配置信息添加到Spring管理的对象中,同时,我们获取对象的方式和上期讲解的方式相同。

3.5 配置集合

使用方法与配置对象相同。

相关文章:

Spring Boot 配置文件

1. 配置文件的作用 配置文件主要是为了解决硬件编码带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,程序从配置文件中读取一些数据,并加载运行。 硬编码是将数据直接放在源代码中&…...

IPKISS ------ 查看器件默认端口名称

IPKISS ------ 查看器件默认端口名称 正文正文 我们这里以 Grating Coupler 举例。 import si_fab.all as pdk import ipkiss3.all as i3class MyGratingCoupler(i3.circuit):gc = i3.childcellProperty(<...

uni-app踩坑记录

uni-app踩坑记录 Failed to load local image resource xxx the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) Failed to load local image resource xxx the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) 文…...

【嵌入式硬件】光耦

1.光耦作用 光耦一般用于信号的隔离。当两个电路的电源参考点不相关时,使用光耦可以保证在两边不共地的情况下,完成信号的传输。 2.光耦原理 光耦的原理图如下所示,其内部可以看做一个特殊的“三极管”; 一般的三极管是通过基极B和发射极E间的电流,去控制集电极C和发射极…...

学习Fast-LIO系列代码中相关概念理解

目录 一、流形和流形空间&#xff08;姿态&#xff09; 1.1 定义 1.2 为什么要有流形? 1.3 流形要满足什么性质&#xff1f; (1) 拓扑同胚 (2) 可微结构 1.4 欧式空间和流形空间的区别和联系? (1) 区别&#xff1a; (2) 联系&#xff1a; 1.5 将姿态定义在流形上比…...

React 掌握及对比常用的8个Hooks,优化及使用场景

1、useState 在函数组件中&#xff0c;可以使用useState来定义函数组件的状态。使用useState来创建状态。 1.引入2.接收一个参数作为初始值3.返回一个数组&#xff0c;第一个值为状态&#xff0c;第二个值为改变状态的函数 2、 useEffect useEffect又称副作用hooks。作用&…...

DNS域名解析过程

在互联网中我们通信目标是对方的IP&#xff0c;但是由于IP不便于记忆所以引入了域名 域名和IP是一一对应的关系&#xff0c;需要注意的是域名和网址是不同的概念 比如&#xff1a;www.csdn.net是域名&#xff0c;https://www.csdn.net/?spm1001.2101.3001.4476是网址 首先了解…...

MySQL数据库(数据库连接池)

文章目录 1.批处理应用1.基本介绍2.批处理演示1.创建测试表2.修改url3.编写java代码 3.批处理源码分析 2.数据库连接池1.传统连接弊端分析2.数据库连接池基本介绍1.概念介绍2.数据库连接池示意图3.数据库连接池种类 3.C3P0连接池1.环境配置1.导入jar包2.将整个lib添加到项目中3…...

【C#】知识点速通

前言&#xff1a; 笔者是跟着哔站课程&#xff08;Trigger&#xff09;学习unity才去学习的C#&#xff0c;并且C语言功底尚存&#xff0c;所以只是简单地跟着课程将unity所用的C#语言的关键部分进行了了解&#xff0c;然后在后期unity学习过程中加以深度学习。如需完善的C#知识…...

FTP协议

FTP协议 客户端向服务器发送文件。 C/S架构。 运行在TCP/IP协议上面。 FTP客户端要和FTP服务端建立两个TCP连接。 控制连接&#xff1a;运行在整个连接过程&#xff0c;传输控制信息。 数据连接&#xff1a;在每次文件传输时才会建立&#xff0c;文件传输完就关闭。 主动模式…...

前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】

前后端分离开发 介绍开发流程Yapi&#xff08;api接口文档编写平台&#xff09;介绍 Swagger使用方式1). 导入knife4j的maven坐标2). 导入knife4j相关配置类3). 设置静态资源映射4). 在LoginCheckFilter中设置不需要处理的请求路径 查看接口文档常用注解注解介绍 当前项目中&am…...

Android的硬件接口HAL-2 HIDL

没写完哈。 不说废话&#xff0c;直接上干活。 1 创建HAL mkdir -p vendor/fanged/hidltest/1.0/defaultvi vendor/fanged/hidltest/1.0/Ilovefanged.hal package vendor.fanged.hardware.hidltest1.0;interface Ilovefanged {add(int32_t a, int32_t b) generates (int32_t…...

pygame--坦克大战(二)

加载敌方坦克 敌方坦克的方向是随机的,使用随机数生成。 初始化敌方坦克。 class EnemyTank(Tank):def __init__(self,left,top,speed):self.images = {U: pygame.image.load(img/enemy1U.gif),D: pygame.image.load(img/enemy1D.gif),L: pygame.image.load(img/enemy1L.gi…...

【C语言】标准输入/输出(printf, scanf, gets, puts, getchar, putchar)

标准文件文件指针设备标准输入stdin键盘标准输出stdout屏幕标准错误stderr您的屏幕 标准输入/输出的函数在标准库stdio.h。 #include <stdio.h> 1、printf 输出 printf &#xff1a;格式化输出&#xff0c;输出到标准输出stdout中。 printf&#xff1a; int print…...

C、C++、C#中.vscode下json文件记录

C launch.json {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configurations": [{"name": &quo…...

2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 B题 流行音乐发展简史 原题再现&#xff1a; 随着互联网的发展&#xff0c;流行音乐的主要传播媒介从传统的电台和唱片逐渐过渡到网络下载和网络电台等。网络电台需要根据收听者的已知喜好&#xff0c;自动推荐并播放其它音乐。由于每个人喜好…...

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验&#xff0c;从而增强 AR 体验的真实感。 在下图中&#xff0c;右侧画面是采用深度API进行遮挡后的效果&#xff0c;与左侧图相比更加真实。 深度值 给…...

软考数据库

目录 分值分布1. 事务管理1.1 事物的基本概念1.2 数据库的并发控制1.2.1 事务调度概念1.2.2 并发操作带来的问题1.2.3 并发控制技术1.2.4 隔离级别&#xff1a; 1.3 数据库的备份和恢复1.3.1 故障种类1.3.2 备份方法1.3.3 日志文件1.3.4 恢复 2. SQL语言发权限收权限视图触发器…...

Echarts 自适应宽高,或指定宽高进行自适应

文章目录 需求分析 需求 有一个按钮实现对Echarts的指定缩放与拉长&#xff0c;形成自适应效果 拉长后效果图 该块元素缩短后效果图 分析 因为我习惯使用 ref 来获取组件的 DOM 元素&#xff0c;然后进行挂载 <div ref"echartsRef" id"myDiv" :sty…...

体验报告:为什么Claude-3是码农和学者的新宠?

在这个充斥着海量信息的新时代&#xff0c;人工智能的飞速发展带来了翻天覆地的变化。特别是在编程、学术探索以及专业文案创作等领域&#xff0c;AI的助力显得格外关键。最近&#xff0c;我有机会尝试了一种革命性的人工智能工具——Claude-3&#xff0c;其表现令我震惊&#…...

Keil5主题配色进阶:不只是好看,更要好用!详解如何区分函数、变量、宏定义的颜色

Keil5主题配色进阶&#xff1a;不只是好看&#xff0c;更要好用&#xff01;详解如何区分函数、变量、宏定义的颜色 作为一名嵌入式开发者&#xff0c;每天面对Keil5的默认编辑器界面&#xff0c;你是否也感到视觉疲劳&#xff1f;那些单调的配色不仅影响编码心情&#xff0c;更…...

智慧医疗泡罩药板药片缺失缺陷检测数据集VOC+YOLO格式1300张3类别

注意数据集中图片大约500张是原图剩余为增强图片数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;1300标注数量(xml文件个数)&#xff1a;1300…...

从定时器到任务调度:用Qt QTimer和QThreadPool构建一个轻量级后台任务管理器

从定时器到任务调度&#xff1a;用Qt QTimer和QThreadPool构建轻量级后台任务管理器 在开发中型Qt应用时&#xff0c;后台任务管理往往成为架构设计的痛点。当简单的定时器无法满足复杂业务需求&#xff0c;当主线程被耗时任务拖累导致界面卡顿&#xff0c;开发者需要一套更优雅…...

Phi-3 Forest Laboratory创意图像提示词生成效果:将抽象概念转化为视觉描述

Phi-3 Forest Laboratory创意图像提示词生成效果&#xff1a;将抽象概念转化为视觉描述 你有没有过这样的经历&#xff1f;脑子里冒出一个特别酷的画面&#xff0c;比如“赛博朋克风格的孤独”&#xff0c;或者“初夏清晨的宁静”&#xff0c;感觉特别有味道&#xff0c;但就是…...

RWKV7-1.5B-g1a惊艳案例:将复杂段落压缩为三条逻辑闭环要点

RWKV7-1.5B-g1a惊艳案例&#xff1a;将复杂段落压缩为三条逻辑闭环要点 1. 模型能力展示&#xff1a;从复杂到简洁的文本处理 RWKV7-1.5B-g1a作为一款轻量级文本生成模型&#xff0c;在信息压缩和提炼方面展现出令人惊喜的能力。我们通过一个实际案例来展示它如何将复杂内容转…...

3步精通FanControl:从噪音难题到智能散热的技术蜕变

3步精通FanControl&#xff1a;从噪音难题到智能散热的技术蜕变 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...

OpenClaw故障自愈方案:Qwen3-32B镜像异常重启监控

OpenClaw故障自愈方案&#xff1a;Qwen3-32B镜像异常重启监控 1. 问题背景与解决思路 上周我的OpenClaw自动化助手突然"罢工"了——原本应该定时执行的日报生成任务没有按时完成。排查后发现是底层Qwen3-32B模型服务因OOM异常退出。这种情况在长期运行的AI服务中并…...

保姆级教程:在YOLOv12中集成CBAM注意力模块(附完整代码与配置文件)

从零实现YOLOv12与CBAM注意力模块的深度整合实战指南 在目标检测领域&#xff0c;YOLO系列算法始终保持着前沿地位。最新发布的YOLOv12在速度和精度之间取得了更好的平衡&#xff0c;而注意力机制的引入则能进一步提升模型对关键特征的捕捉能力。本教程将手把手带你完成CBAM注…...

OpenClaw深度配置:Qwen3.5-9B模型参数调优指南

OpenClaw深度配置&#xff1a;Qwen3.5-9B模型参数调优指南 1. 为什么需要关注模型参数调优&#xff1f; 第一次用OpenClaw对接Qwen3.5-9B模型时&#xff0c;我遇到了一个奇怪现象&#xff1a;同样的"整理桌面截图并分类归档"任务&#xff0c;白天执行成功率能达到8…...

OpenClaw内存优化:GLM-4.7-Flash大任务处理的资源调配技巧

OpenClaw内存优化&#xff1a;GLM-4.7-Flash大任务处理的资源调配技巧 1. 当OpenClaw遇上大任务&#xff1a;我的内存崩溃现场 那是个周五的深夜&#xff0c;我正尝试用OpenClaw自动处理一批技术文档的归档和摘要生成。任务看似简单&#xff1a;读取200多个Markdown文件&…...