Springboot的两种配置文件语法详细介绍、properties与yml的区别、application.properties不可以用双引号?

news/2024/9/28 21:17:20/

文章目录

  • 一、properties语法介绍
  • 二、yaml语法介绍
  • 三、总结
    • 3.1、properties与yml的区别
    • 3.2、properties不可以用双引号?

本篇文章介绍一下springboot两种配置文件properties与yml的区别,以及两种文件的写法

一、properties语法介绍

‌Properties‌文件的语法基于“key=value”的形式,使用点号(.)来分割层级。

语法结构 : key=value#示例:
user.name=张三

注意:

  • 字符串不需要使用双引号或者单引号,如果有写只会当做字符串的一部分,原样输出。

示例:

# 字面量(数字,字符串,布尔)
user.user-name=张三# 对象
user.user-name=45678
user.pwd=123456
user.mobile=18393948482
user.age=25
# 数组
user.hobby=吃饭,睡觉,打豆豆
# Map对象
user.map.k1=123456
user.map..k2=456789

二、yaml语法介绍

‌YAML (YML)‌使用缩进和冒号来表示层次结构,支持列表和字典等数据结构,且必须使用空格进行缩进,不能使用TAB。

语法结构 :key:空格 value示例:
user:name: 张三
注意:空格一定需要,yaml 语法就是通过空格缩进去确定层级关系。
  1. k:(空格)v:表示一对键值对(空格必须有);
  2. 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的;
  3. 属性和值也是大小写敏感;
  4. k:v:字面直接写;
  5. 字符串默认不用加上单引号或者双引号;
  6. “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
    name:“zhangsan\nlisi”:输出;zhangsan换行lisi
  7. ‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
  8. —:代表区块,将一个ymal文件分为多个文件

示例如下:

# 字面量(数字,字符串,布尔)
server:port: 8081user:user-name: 张三age: 26mobile: 18369615874# 数组行内写法# hobby: [吃饭,睡觉,打豆豆]# map行内写法# map: {k1: 吃饭,k2: 睡觉}pwd: 123456hobby:- 吃饭- 睡觉- 打豆豆map:k1: 吃饭k2: 睡觉
---
# 对象行内写法
user: {user-name: 张三,pwd: 123456,mobile: 1839394721,hobby: [吃饭,睡觉,打豆豆],map: {k1: 吃饭,k2: 睡觉},age: 26}

三、总结

3.1、properties与yml的区别

  • 第一个是yml是支持中文内容的,properties想使用中文只能用unicode编码
  • 第二个是顺序问题,properties是不保证加载顺序的,yml有先后顺序。
    Java 的 Properties 加载属性文件后是无法保证输出的顺序与文件中一致的,因为 Properties 是继承自 Hashtable , key/value 都是直接存在 Hashtable 中的,而 Hashtable 是不保证进出顺序的。

3.2、properties不可以用双引号?

Q: 有一次在properties中对value加了双引号,读取出来的值也加了双引号原文输出了,导致报错了

A:在Spring Boot的配置文件中,application.properties文件使用简单的Key-Value格式进行配置,其中值可以是任何字符串,但不需要使用双引号或单引号。如果配置文件中出现了双引号或单引号,它们将被原样输出,而不是被解析为字符串的值。这一点在多个来源中得到了确认,例如,在Spring Boot中使用application.properties文件时,可以通过简单的key=value格式进行配置,而不必使用引号来包围值‌


http://www.ppmy.cn/news/1530739.html

相关文章

为什么推荐使用英文版LabVIEW

在LabVIEW开发中,中文版和英文版主要在界面语言、功能习惯以及社区支持等方面存在差异。以下是两者的特点以及推荐使用英文版的原因: 中文版特点: 界面和帮助文档为中文:对于中文母语开发者来说,中文版LabVIEW的界面和…

51单片机快速入门之按键应用拓展

51单片机快速入门之按键应用拓展 LED的点动控制: 循环检测,当key 为0 时 led 亮 反之为熄灭 while(1){ if(key!1) { led0; }else { led1; } } LED的锁定控制: 当按钮按下,led取反值 while(1) { if(key!1) { led!led; } } LED的4路抢答控制: bz默认为0 !bz 取反值,循环启动…

MySQL Performance Schema 详解及运行时配置优化

引言 MySQL 的 Performance Schema 是一套性能监控与诊断工具,帮助开发者和数据库管理员收集、分析 MySQL 实例的运行状态,找出性能瓶颈并进行优化。通过 Performance Schema,我们能够监控不同的内部事件、线程、会话、语句执行等关键性能指…

note-Redis实战5 核心-构建应用程序组件1

助记提要 使用Redis列表实现自动补全列表实现自动补全的限制使用Redis有序集合实现自动补全锁的异常状态 4种使用SETNX命令实现简单的锁细粒度锁给锁加上超时限制三种信号量的实现和适用条件(基本、公平、加锁) 6章 构建应用程序组件1 构建常用组件:自动补全、分布…

气压高度加误差的两种方法(直接添加 vs 换算到气压误差),附MATLAB程序

在已知高度真实值时,如果需要计算此高度下的气压计误差,可考虑本文所述的两种方法 气压高度 气压与高度之间的关系可以用大气压的垂直变化来描述。随着高度的增加,气压通常会下降。这是因为空气的密度在高度增加时减少,导致上方空气柱对下方空气施加的压力减小。 主要关系…

LLM - 使用 XTuner 指令微调 多模态大语言模型(InternVL2) 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142528967 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 XTuner…

【C语言】const char*强制类型转换 (type cast)的告警问题

void run_upload(const char *ftp_url) {CircularQueue queue;// 初始化环形队列for (int i = 0; i < QUEUE_SIZE; i++) {queue.items[i].data = malloc(BUFFER_SIZE);if (queue.items[i].data == NULL) {fprintf(stderr, "Failed to allocate memory for queue item %…

在nuxt中集成mars3d

创建一个nuxt项目 创建一个项目&#xff0c;安装依赖 安装mars3d ,安装mars3d-cesium 替换app.vue <template><div id"mars3dContainer" class"mars3d-container"></div><!-- <div>123</div> --> </template&…