Spring Boot 系列2 -- 配置文件

目录

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 支持更多的数据类型,且可以使用中文

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DPWWN1靶场详解

DPWWN1靶场详解 首先还是nmap -sP 192.168.102.0/24扫描到ip地址,然后对这个ip进行一个单独的扫描,发现这个靶场有一个mysql数据库,猜测可能会用到sql注入,但是没用到。 ip登陆到网页发现并没有什么可利用的 唯一的切入点也就数…

Java 动态规划 Leetcode 62. 不同路径

代码展示&#xff1a; class Solution {public int uniquePaths(int m, int n) {//定义dp数组//二维数组多增加一行一列&#xff0c;方便对数组进行初始化int[][]dpnew int[m1][n1];//初始化dp[0][1]1;//填充数组for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i-1][j…

基于springboot+Redis的前后端分离项目(七)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 发布笔记&#xff0c;点赞&#xff0c;点赞排行 达人探店1、达人探店-发布探店笔记2、 达人探店-查看探店笔记3、 达人探店-点赞功…

《网络安全标准实践指南》(72页)

导读 摘要&#xff1a;为指导网络数据安全风险评估工作&#xff0c;发现数据安全隐患&#xff0c;防范数据安全风险&#xff0c;依据《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》等法律法规&#xff0c;参照数据安全相关国家标…

STM32寄存器点亮LED灯

一&#xff1a; 如何寄存器点灯 1&#xff1a;看单片机的原理图 找到LED灯 这个灯是 PB5引脚 看原理图可以看出 让GPIOB5输出低电平 就能点亮那么我们得让打开控制GPIOB5的时钟让GPIOB5 输出模式让GPIOB5低电平 二&#xff1a;看中文参考手册配置寄存器 2.1&#xff1a;打开管…

【Windows】Redis集群部署

集群是如何进行工作的 Redis采用哈希槽来处理数据与节点之间的映射关系&#xff0c;一个集群共有16384 个哈希槽&#xff0c;每个key通过 CRC16算法计算出一个16bit的值&#xff0c;再对16384取模&#xff0c;得到对应的哈希槽&#xff0c;集群通过维护哈希槽与节点的关系来得…

redis与分布式

主从复制 概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff0c;数据的复制是单向的&#xff0c;只能由主节点到从节点。Master以写为主&#xff0c;Slave 以读为…

MySQL----MHA高可用

文章目录 一、MHA理论1.1什么是 MHA1.2MHA 的组成1.3MHA 的特点 二、MHA的一主两从部署实验设计故障修复步骤&#xff1a; 一、MHA理论 1.1什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出…

【Django】Django框架使用指南

Django使用指南 作者简介&#xff1a;嗨~博主目前是长安大学软件工程专硕在读&#x1f4d8;&#xff0c;喜欢钻研一些自己感兴趣的计算机技术&#xff0c;求关注&#x1f609;&#xff01; 框架简介&#xff1a;Django是一个基于Python语言的开源Web应用框架&#xff0c;采用 M…

基于STM32FFT(快速傅里叶变换)音频频谱显示功能实现

+ v hezkz17进数字音频系统研究开发交流答疑 一实验效果 二 设计过程 要用C语言实现STM32频谱显示功能,可以按照以下步骤进行操作: 1 确保已经安装好了适当的开发环境和工具链,例如Keil MDK或者GCC工具链。 2 创建一个新的STM32项目,并选择适合的MCU型号。 3 配置G…

【数据挖掘】时间序列教程【九】

第5章 状态空间模型和卡尔曼滤波 状态空间模型通常试图描述具有两个特征的现象 有一个底层系统具有时变的动态关系,因此系统在时间上的“状态”t 与系统在时间的状态t−1有关 .如果我们知道系统在时间上的状态t−1 ,那么我们就有了我们需要知道的一切,以便对当时的状态进行推…

Android Zygote 启动流程

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: Android系统包含netd、servicemanager、surfaceflinger、zygote、media、installd、bootanimation 等基本服务&#xff0c;具体作用请看下图。 Android…

更开放、更高性能、更具规模,闪马智能布局AGI时代

7月6日&#xff0c;2023世界人工智能大会&#xff08;WAIC 2023&#xff09;在上海盛大开幕。本届大会以“智联世界 生成未来”为主题&#xff0c;聚焦通用人工智能发展&#xff0c;共话产业新未来。 8日上午&#xff0c;由上海闪马智能科技有限公司&#xff08;下称“闪马智能…

el-form实现其中一个填写即可的校验

<el-formref"form":model"formData":rules"formRules"label-width"130px"><el-row :gutter"24"><el-col :span"12"><el-form-item label"司机姓名 :" prop"driverName"…

西电_矩阵论_学习笔记

文章目录 【 第一章 线性空间 】【 第二章 范数 】【 第三章 矩阵函数 】【 第四章 矩阵分解 】【 第五章 矩阵特征值估计 】【 第六章 广义逆 】【 考试重点内容总结 】 这是博主2023春季西电所学矩阵论的思维导图&#xff08;软件是幕布&#xff09;&#xff0c;供大家参考&a…

GaussDB OLTP云数据库配套工具DRS

目录 一、前言 二、DRS定义与使用场景 1、DRS定义 2、DRS场景示意图 三、DRS核心功能 1、实时迁移管理 2、实时同步管理 3、备份迁移管理 4、数据订阅管理 5、实时灾备管理 四、小结 一、前言 华为GaussDB云数据库提供了配套的生态工具数据复制服务DRS。 DRS围绕云…

漏洞深度分析 | CVE-2023-36053-Django 表达式拒绝服务

​ 项目介绍 Django 是一个高级 Python Web 框架&#xff0c;鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建&#xff0c;解决了 Web 开发的大部分麻烦&#xff0c;因此您可以专注于编写应用程序&#xff0c;而无需重新发明轮子。它是免费且开源的。 项目地址…

Squid 缓存服务器

Squid 缓存服务器 作为应用层的代理服务软件&#xff0c;Squid 主要提供缓存加速和应用层过滤控制的功能 ☆什么是缓存代理 当客户机通过代理来请求 Web 页面时 指定的代理服务器会先检查自己的缓存&#xff0c;如果缓存中已经有客户机需要访问的页面&#xff0c;则直接将缓…

【考研思维题】【哈希表 || 什么时候用哈希表呢?快速查询的时候】【我们一起60天准备考研算法面试(大全)-第九天 9/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

ModaHub魔搭社区:向量数据库Zilliz Cloud删除 Entity和删除 Collection教程

目录 删除单个 Entity 批量删除 Entity 开始前 操作步骤 使用限制 Entity 是指存储在 Zilliz Cloud 集群中的数据实体,包含用于处理、搜索和查询的数据。如果您不再需要某个 Entity,可以执行相关操作将其删除。 本文介绍如何从 Collection 中删除单个或多个 Entity。 …