Spring Boot 系列2 -- 配置文件

news2024/10/7 12:28:12

目录

1. 配置文件的作用

2. 配置文件的格式

3. properties 配置文件说明

3.1 properties 基本语法

3.2 读取配置文件

3.3 properties 缺点

4.yml 配置文件说明

4.1 yml 基本语法

4.2 yml 使用进阶

4.2.1 yml 配置不同数据类型及 null

4.2.2 yml 配置读取

4.2.3 注意事项:value 值加单双引号

4.2.4 配置对象 

4.2.5 配置集合

4.3 设置不同环境下的配置文件

5. properties VS yml


1. 配置文件的作用

整个项目中所有的重要的数据都是在配置文件中进行配置的.

 配置文件主要包括两部分

  • 1. 系统使用的配置文件:如端口号, 连接数据库的配置;
  • 2. 用户自定义配置文件:如第三方调用的秘钥.

2. 配置文件的格式

Spring Boot 配置文件主要分为以下两种格式:

  1. .properties
  2. .yml 

 

 其中最先出现的是properties文件,yml文件是新版配置文件.

说明:

 

正常的情况下,一个项目我们的配置文件的格式都是相同的,但是理论上来讲,properties和yml文件一个存储在一个项目里面,当两者在同一个项目中,如果出现了配置相同的参数,比如 properties 和 yml 中都配置了“server.port”.那么这个时候会以 properties 中的配置为主,也就是 .properties 配置文件的优先级最高,但加载完 .properties 文件之后,也会加载 .yml 文件的配置信息。

3. properties 配置文件说明

3.1 properties 基本语法

properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如:

3.2 读取配置文件

使用@Value 注释,格式为"${}".代码如下:

3.3 properties 缺点

 上述可以看出在配置文件中出现了冗余的代码.为了解决上述的信息,yml就是一个不错的选择.

4.yml 配置文件说明

         yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语言”。

yml 优点分析

 最后一点极为重要,正是有了这一点才使得yml这个语言,变的流行起来,在不同的语言项目我们可以使用相同的一个配置文件.

 4.1 yml 基本语法

 yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文:和空格进行组成的,其中的空格不可省略。

 

使用 yml 连接数据库

这样通过树形结构进行书写配置文件是不是变的清晰并且更加简洁了呢.

4.2 yml 使用进阶

4.2.1 yml 配置不同数据类型及 null

# 字符串
string.value: Hello

# 布尔值,true或false
boolean.value: true
boolean.value1: false

# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制

# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法

# Null,~代表null
null.value: ~

4.2.2 yml 配置读取

yml 读取配置的方式和 properties 相同,使用@Value 注解即可,实现代码如下:

 4.2.3 注意事项:value 值加单双引号

 字符串默认不用加上单引号或者双引号,如果加英⽂的单双引号可以表示特殊的含义。尝试在 application.yml 中配置如下信息:

 使用@postconstruct方法读取

 控制台打印:

 也就是说:

  • 1. 字符串不需要加上英文状态的单引号或者双引号;
  • 2. 加上单引号,如果字符串中包含特殊的字符,会将此字符进行转义,失去原来的效果;
  • 3. 加上双引号,原来的特殊字符还是保留自己本身的含义.

4.2.4 配置对象 

树形写法:

 单行写法:

 这个时候就不能用@Value 来读取配置中的对象了,此时要使用另⼀个注解@ConfigurationProperties 来读取,具体实现如下:

 代码如下:

调用的时候使用@AutoWired注解进行调用.

 控制台打印结果:

4.2.5 配置集合

与创建对象不同的是,一个集合包含了多个元素使用"-"进行列举.

读取配置文件中的集合,同样也是使用@ConfigurationProperties

打印集合 

 控制台进行打印

 Spring Boot 更多系统配置项--访问官网https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties

4.3 设置不同环境下的配置文件

 1、创建不同环境的配置文件:

  • application-dev.yml      开发环境
  • application-prod.yml    生产环境 

在application.yml进行配置: 

5. properties VS yml

  • 1. properties  是以键值对的行进行存储,而yml使用的是树形的格式进行存储的.并且key和Value之间使用:加空格的方式进行设置,并且为空格不可以省略.
  • 2. properties 为早期并且默认的配置文件格式,但在配置的时候有太多冗余的数据,使用yml可以更好的解决此问题.
  • 3. yml通用性更好.⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使用⼀份配置文件作为 Java 和 Go 的共同配置文件
  • 4. yml 支持更多的数据类型,且可以使用中文

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

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

相关文章

FPGA学习——点亮流水灯

文章目录 一、前言二、源码三、ModelSim仿真3.1 tb文件源码:3.2 创建项目3.3 ModelSim仿真 一、前言 在FPGA开发板中,一般板载LED默认高电平点亮,因此我们只需要将想要亮起的LED赋值为1即可。 本入门实验要求为每隔1s开发板上的LED轮流亮起&…

STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066

STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066 Proteus仿真小实验: STM32 Proteus仿真医用仓库环境控制系统紫外线消毒RS232上传CO2 -0066 功能: 硬件组成:STM32F103R6单片机 LCD1602显示器DHT11温度湿度电位器模拟…

高分卫星影像及GIS技术在甘南泥石流灾害中的应用

本文使用的甘南夏河县泥石流灾情专题数据如下(来源于高分甘肃中心): (1)灾前遥感影像 (2)灾害位置 (3)基础地理数据:行政区划、交通路网、河流水系、湖泊水库…

前端Vue自定义精美steps步骤条进度条插件 物流信息跟踪展示组件 流程审批跟进组件

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

怎么用PDF派工具将Word转成PDF

Word是我们最常用的一种格式文件,它易于编辑,但是安全性和稳定性较差,有时候我们发送给别人的Word文件,接收到打开内容已经乱码。遇到这种情况,我们可以优先将Word文件转换成稳定性好的PDF文件。那么如何进行文件格式转…

如何使用伪元素 ::before 实现 Antd 表单一模一样的 required 红色 * 号

如何使用伪元素 ::before 实现 Antd 表单一模一样的 required 红色 * 号 背景 以一个简单的 Form.Item 包裹 Select 为例 我们去实现它的 * 号 操作 F12 打开控制台选中这个元素上面查看 CSS 属性 仿照这个写在 .less 文件里 // .less .ruleTable::before {display: inlin…

RiProV2主题一级分类显示包含子分类的数量Ritheme主题美化WordPress美化类似的步骤

美化-RiProV2主题一级分类显示包含子分类的数量 WordPress主题一级分类页面显示包含子分类的数量 一级分类显示子分类相加的数量 原主题配置项 原来的RiProV2主题,虽然有个配置用来显示分类下的数量。 但是该数量有个问题,就是一级分类的数量显示不包含该一级分类下二级…

操作系统14:缓冲区和磁盘调度算法

目录 1、缓冲区管理 (1)单缓冲区和双缓冲区 1.1 - 单缓冲区 1.2 - 双缓冲区 (2)环形缓冲区/多缓冲区 (3)缓冲池(Buffer Pool) 3.1 - 缓冲池的组成 3.2 - 缓冲池的工作方式 2、磁盘存储器的性能和调…

面向对象进阶一(static,继承,多态)

面向对象进阶一 一、static二、继承2.1 继承的定义和特点2.2 继承内容、成员变量和成员方法的访问特点2.2.1继承内容2.2.2 成员变量的访问特点2.2.3 成员方法的访问方法、方法的重写 2.3 继承中构造方法的访问特点 三、this、super使用总结四、多态4.1 多态的基本概念4.2 多态调…

MySQL 学习笔记 2:触发器

MySQL 学习笔记 2:触发器 图源:ubiq.co 触发器,就像字面意思那样,它会在数据库某些事件发生时执行一些操作。 具体来说,触发器会在特定表的INSERT、UPDATE、DELETE这些类型的 SQL 语句执行时被“触发”,并…

CopyOnWriteArrayList使用以及原理分析

文章目录 一、CopyOnWriteArrayList的简介二、CopyOnWriteArrayList类的继承关系1、Iterable接口:2、Collection接口:3、List接口:4、Cloneable接口:5、Serializable接口:6、RandomAccess接口: 三、CopyOnW…

模糊图片怎么修复清晰度?这几个方法分享给你~

在我们的日常生活和工作中,经常会遇到图片模糊的问题,这可能是由于拍摄时的手抖、对焦不准确或者图片压缩过度等原因造成的。那么,如何修复模糊的图片,提高其清晰度呢?本文将为您介绍几种方法。 方法一:使…

ABAP调用阿里云接口-短信服务-HTTP协议及签名(abap版本)<转载>

原文链接:https://blog.csdn.net/xiefireworks/article/details/113037650 阿里云接口文档请参考官网地址 https://help.aliyun.com/document_detail/59210.html?spm5176.8195934.J_5834642020.5.11ba4378DLVi4O 此处仅介绍使用ABAP完成阿里云短信服务签名请求的…

树莓派4B的串口UART配置

1 安装串口: 如果没有更换pip源会报错,所以指定安装源 pip install pyserial -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 修改uart配置: vim /boot/firmware/config.txt 在末尾添加: dtoverlayuart2…

X86架构的Linux(Ubuntu版本)上离线安装CUnit来解决Could not find CUnit(missing:CUNIT_LIBRARY)问题

前言1 下载cunit压缩安装包:CUint-2.1-3.tar.bz2(为了安装成功请下载对应版本)2 解压安装压缩包3 sudo ./bootstrap --prefix/usr/local/cunit 生成可执行文件configure*4 sudo ./configure --prefix/usr/local/cunit5 sudo make . 编译 &…

Centos安装指定docker版本和docker-compose

目录 一. 直接安装Docker最新镜像源 1. 卸载旧版本的Docker: 2. 安装依赖包: 3. 添加Docker源: 4. 安装Docker: 5. 启动Docker服务: 6. 验证Docker是否安装成功: 二、指定Docker版本安装 1. 查看…

已解决‘mongo‘ 不是内部或外部命令,也不是可运行的程序

已解决(MongoDB安装报错)‘mongo’ 不是内部或外部命令,也不是可运行的程序 报错代码 粉丝群里的一个小伙伴安装完MongoDB后,在cmd中启动,却说不是可运行的命令? 报错原因 报错原因:由于没有配置环境变量的…

【Redis】4、全局唯一 ID生成、单机(非分布式)情况下的秒杀和一人一单

目录 一、利用 Redis 实现全局唯一 ID 生成(1) 为啥要用全局唯一 ID 生成(2) 全局唯一 ID 生成器(3) 全局 ID 的结构(4) 代码实现① RedisIdWorker② Test (5) 全局唯一 ID 其他生成策略 二、添加优惠券(1) 数据库(2) 添加优惠券接口 三、优惠券秒杀下单功能(1) 超卖问题(2) 乐…

项目上线“G”速报 | GBASE助力四川银行反洗钱系统上线运行

随着金融机构资管业务的不断发展,藉由以银行为代表的金融机构建设反洗钱系统,向执法机构报送可疑活动,成为侦测潜在金融犯罪、打击腐败的重要防线。为更好助力反洗钱工作,四川银行着手构建新一代的反洗钱系统。作为信创第二期的重…

重磅预告丨Fortinet Demo Day系列实战攻防演练来袭!

随着网络安全形势的日趋严峻,越来越多的企业遭受了勒索、欺诈等危害。在高昂的赎金、生产损失,以及名誉损害的恐惧中,企业已经谈“黑”色变。黑客是如何悄无声息的“越过”重重高墙、道道壁垒进入到生产环境、办公空间,并在内网疯…