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

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

这些文件具有使应用程序启动和运行所需的不同配置属性,例如连接数据库什么是凭据,应用程序将在哪个端口上运行等。YAML ( .yml ) 文件:YAML 是一种配置语言。Python、Ruby、Java 等语言在开发应用程序时大量使用它来配置各种属性。

如果使用过 Elastic Search 实例和 MongoDB 数据库,那么这两个应用程序都使用 YAML( .yml ) 作为其默认配置格式。

例子:

#.yml file

some_key:value
some_number:9
some_bool:true

嵌套: 对于嵌套, .yml 文件支持使用空格的层次结构。

# .yml file

somemap:
  key:value #use space not tab
  number:9

#inline format                         
  map2: {bool=true, date=2016-01-01}

让我们在此类文件中定义一个列表:YAML 作为其规范的一部分支持该列表。

#.properties file

# A List
numbers[0] = one
numbers[1] = two

# Inline List
numbers = one, two

.properties文件: 此文件扩展名用于配置应用程序。这些在 Java 等技术中用作 Property Resource Bundles 文件。

例子:

#.properties file

some_key = value
some_number = 9
some_bool = true

.properties嵌套: 对于嵌套, .properties 文件支持点 (.) 表示法。 .yml 文件中的内联格式与 JSON 非常相似

#.properties file

somemap.key = value 
somemap.number = 9

map2.bool = true
map2.date = 2023-01-01

假设在这样的文件中定义一个列表: .properties 文件不支持列表,但是 spring 使用数组作为约定在 .properties 文件中定义列表。

#.yml file

numbers:
  - one # use a dash followed by space
  - two

# Inline List
numbers:[one, two]

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

YAML(.yml) .properties
规范可以在这里找到它实际上并没有规范。 它与规范最接近的东西实际上是 javadoc。
人类可读(在人类可读性方面都做得很好) 人类可读
支持 key/val,基本上是 map、List 和标量类型( intstring 等) 支持 key/val,但不支持超出字符串的值
它的使用在 Python、Ruby 和 Java 等许多语言中非常普遍。 它主要用于 java
分层结构 非分层结构
Spring Framework 不支持带有 .yml 文件的 [ @PropertySources ](https://github.com/PropertySources "@PropertySources") 支持带有 .properties 文件的 [ @PropertySources ](https://github.com/PropertySources "@PropertySources")
如果使用Spring 配置文件,可以在一个 .yml 文件中拥有多个配置 文件每个配置文件都需要一个单独的 .properties 文件
.yml 文件中检索值时,无论配置中的相应类型(int、string 等)如何,都会获得该值。 而对于 .properties 文件,无论配置中的实际值类型是什么,都会获得字符串。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程