Java SpringBoot YAML(.yml)和.properties文件的区别

Java SpringBoot YAML(.yml)和.properties文件的区别

偶尔SpringBoot开发人员可能需要一个外部配置来定义SpringBoot应用程序的特性,以便我们可以在不同的环境中使用相同的应用程序代码。为此,我们可以使用YAML和.properties文件来存储所需的特性。尽管功能类似,但它们在语法和附加特性方面存在一些区别。在本文中,我们将探讨.yml和.properties文件之间的主要区别。

YAML vs Properties文件

在本节中,我们将介绍YAML和properties文件,然后创建一个描述这两个文件之间差异的表格。

YAML

它是一个缩写,代表YAML不是标记语言。在一些书籍和文章中,它的全称被写为Yet Another Markup Language,这也是正确的。YAML是一种人类可读的数据序列化格式,使用缩进来表示结构,冒号来分隔键值对。

Spring框架的核心组件之一是Spring profiles,它允许我们将应用程序的部分内容分离出来,仅在特定环境中可用。为此,我们只需要一个YAML文件,因为它可以在同一个文件中包含多个配置文件。

YAML示例

spring:
   application:
      name: spring1
   datasource:
      url: jdbc:mysql://localhost:9092/databasename
      username: myname
      password: myPasswrd

上述框中包含一个示例YAML文件的内容。在’application’部分中,我们设置了应用程序的名称,在’datasource’部分中,我们设置了数据库的用户名、密码和URL。

属性

它们是使用键值对格式(key=value)存储配置属性的简单文本文件。每个属性占据一行,注释以井号(#)开头。与YAML类似,它还提供执行应用程序所需的配置。

默认情况下,spring boot支持.properties文件。假设我们为一个应用程序创建了.yml和.properties文件,则spring boot会优先使用.properties文件,而不是.yml文件来执行。

示例属性

# name of the application
spring.application.name= spring1
# making connection with database
spring.datasource.url= jdbc:mysql://localhost: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和属性文件之间的区别。这两种文件都用于定义SpringBoot应用程序的特性。使用YAML文件比属性文件具有更多的优点,这就是为什么开发人员更喜欢使用YAML文件而不是属性文件。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程