这些文件具有使应用程序启动和运行所需的不同配置属性,例如连接数据库什么是凭据,应用程序将在哪个端口上运行等。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 和标量类型(int 、string 等) |
支持 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