Java SpringBoot 中 YAML(.yml) 文件和 .properties 文件的区别
SpringBoot 开发人员有时可能需要外部配置来定义 SpringBoot 应用程序的功能,以便我们可以在不同的环境中使用相同的应用程序代码。为此,我们可以使用 YAML 和 .properties 文件来存储所需的功能。尽管功能相似,但在语法和附加功能方面它们之间存在一些区别。在本文中,我们将探讨 .yml 和 .properties 文件之间存在的主要区别。
YAML 与 Properties 文件
在本节中,我们将介绍 YAML 和 properties 文件,稍后我们将创建一个表格来描述这两个文件之间的区别。
YAML
它是首字母缩略词,代表 YAML Ain't Markup Language。在一些书籍和文章中,它的全称写成 Yet Another Markup Language,这也是正确的。YAML 是一种人类可读的数据序列化格式,它使用缩进表示结构,并使用冒号分隔键值对。
Spring 配置文件是 Spring 框架的核心组件,允许我们将应用程序的各个部分隔离开来,使其仅在特定环境中可用。为此,我们只需要一个 YAML 文件,因为它可以在同一个文件中包含多个配置文件。
YAML 示例
spring:
application:
name: spring1
datasource:
url: jdbc:mysql://:9092/databasename
username: myname
password: myPasswrd
上面的框包含一个 YAML 示例文件的内容。“application”部分设置了应用程序的名称,在“datasource”部分设置了数据库的用户名、密码和 URL。
Properties 文件
它们是简单的文本文件,使用 key=value 格式存储配置属性。每个属性都位于新的一行,注释以井号 (#) 开头。与 YAML 一样,它也提供执行应用程序所需的配置。
默认情况下,Spring Boot 支持 .properties 文件。假设我们为单个应用程序创建 .yml 和 .properties 文件,则 Spring Boot 将优先于 .yml 文件使用 .properties 文件并执行它而不是 .yml 文件。
Properties 文件示例
# name of the application spring.application.name= spring1 # making connection with database spring.datasource.url= jdbc:mysql://:9092/databasename spring.datasource.username= myname spring.datasource.password= myPasswrd
这是 YAML 格式的 .properties 表示。我们可以清楚地看到它的格式与 YAML 完全不同,而且难以理解。带有 # 符号的文本指定注释。
YAML 和 Properties 文件的区别
从以上讨论中,我们可以得出 YAML 和 properties 文件之间以下区别:
YAML |
Properties 文件 |
|---|---|
此类文件的扩展名为 .yml。 |
此类文件的扩展名为 .properties。 |
它需要正确的缩进,否则会遇到错误。 |
此文件不需要缩进。 |
在 YAML 文件中,不需要一遍遍重复相同的键。 |
在 properties 文件中,键在每一行都会重复。 |
它比 properties 文件更易于人类阅读。 |
它是一种相对较难理解的格式。 |
YAML 文件支持分层格式。 |
properties 文件支持顺序格式。 |
它可以支持多种语言,包括 Java、Python 和 Ruby。 |
它只能支持单一编程语言,即 Java。 |
我们可以在单个 YAML 文件中包含多个 Spring 配置文件。 |
对于 Spring 配置文件的每个环境,我们需要单独的 properties 文件。 |
结论
在本文中,我们学习了 YAML 和 properties 文件之间的区别。这两个文件都用于定义 SpringBoot 应用程序的功能。使用 YAML 文件比 properties 文件更有优势,这就是为什么开发人员更喜欢 YAML 文件而不是 properties 文件的原因。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP