当前位置: 首页 > 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 配置集合

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

http://www.lryc.cn/news/330945.html

相关文章:

  • IPKISS ------ 查看器件默认端口名称
  • uni-app踩坑记录
  • 【嵌入式硬件】光耦
  • 学习Fast-LIO系列代码中相关概念理解
  • React 掌握及对比常用的8个Hooks,优化及使用场景
  • DNS域名解析过程
  • MySQL数据库(数据库连接池)
  • 【C#】知识点速通
  • FTP协议
  • 前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】
  • Android的硬件接口HAL-2 HIDL
  • pygame--坦克大战(二)
  • 【C语言】标准输入/输出(printf, scanf, gets, puts, getchar, putchar)
  • C、C++、C#中.vscode下json文件记录
  • 2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序
  • 使用ARCore深度API实现点云采集
  • 软考数据库
  • Echarts 自适应宽高,或指定宽高进行自适应
  • 体验报告:为什么Claude-3是码农和学者的新宠?
  • 接口自动化框架搭建(九):接入钉钉消息通知
  • 一、点击视频下载(通过视频url实现);二、点击下载视频按钮,视频以压缩包形式下载(但未实现压缩视频)
  • B树、B+树、哈夫曼树
  • 评价指标_Precision(精确率)、Recall(召回率)和Accuracy(准确率)区别和联系
  • 【React】React AJAX
  • vue 移动端弹窗带滚动效果 滚动到底的时候弹窗下的页面会跟着滑动
  • Linux-3 yum和vim
  • 什么是计算机视觉?计算机视觉:从基础到前沿
  • Java中的可变字符串
  • C++多线程:单例模式与共享数据安全(七)
  • 康耐视visionpro-CogAcqFifoTool工具详细说明