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 支持带有 .properties 文件的 @PropertySources
如果使用Spring 配置文件,可以在一个 .yml 文件中拥有多个配置 文件每个配置文件都需要一个单独的 .properties 文件
.yml 文件中检索值时,无论配置中的相应类型(int、string 等)如何,都会获得该值。 而对于 .properties 文件,无论配置中的实际值类型是什么,都会获得字符串。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264446.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论