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 文件的原因。

更新于:2023年8月17日

2K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.