作者:手机用户2502898521 | 来源:互联网 | 2023-09-16 10:07
YAML(。yml)和。Java 中的属性文件
原文:https://www . geesforgeks . org/difference-YAML-yml-and-properties-file-in-Java-spring boot/
这些文件具有启动和运行应用程序所需的不同配置属性,例如与数据库连接、凭据是什么、应用程序将在哪个端口上运行等。
YAML(。yml)文件:T3】YAML 是配置语言。像 Python、Ruby、Java 这样的语言在开发应用程序时大量使用它来配置各种属性。
如果您曾经使用过弹性搜索实例和 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
。属性文件: 此文件扩展名用于配置应用程序。这些在像 Java 等技术中被用作属性资源包文件。
示例:
#.properties file
some_key = value
some_number = 9
some_bool = true
筑巢:对于筑巢来说。属性文件支持点(。)符号。中的内联格式。yml 文件与 JSON 非常相似
#.properties file
somemap.key = value
somemap.number = 9
map2.bool = true
map2.date = 2016-01-01
我们在这样的文件中定义一个列表:。属性文件不支持列表,但是 spring 使用数组作为约定来定义。属性文件。
#.yml file
numbers:
- one # use a dash followed by space
- two
# Inline List
numbers:[one, two]
差异表:
| YAML(..(yml) | 。性能 |
| --- | --- |
| 规格可以在[这里](https://yaml.org/spec/)找到 | 它实际上没有规格。它最接近规范的东西实际上是 javadoc。 |
| 人类可读的(两者在人类可读性方面都做得很好) | 人类可读的 |
| 支持键/值,基本上是映射、列表和标量类型(int、string 等)。) | 支持键/值,但不支持超出字符串的值 |
| 它的用法在很多语言中都很普遍,比如 Python、Ruby 和 Java | 它主要用于 java |
| 分级结构 | 非等级结构 |
| Spring Framework 不支持带有的@PropertySources。yml 文件 | 支持带有的@PropertySources。属性文件 |
| 如果您使用的是弹簧轮廓,则可以在一个轮廓中包含多个轮廓。yml 文件 | 每个配置文件需要一个单独的。属性文件 |
| 从检索值时。yml 文件我们得到的值是相应的类型(int、string 等)。)处于配置中 | 而在。不管配置中的实际值类型是什么,我们都会得到字符串 |
该用什么。属性或。yml 文件?
严格来说,。yml 文件比。属性文件,因为它具有类型安全性、层次结构和支持列表,但是如果您正在使用 spring,spring 有许多约定和类型转换,允许您有效地获得 YAML 为您提供的所有这些相同的功能。
使用 YAML 的一个好处是。yml)文件是如果您正在使用多个读取相同配置文件的应用程序。您可能会看到其他语言对 YAML 的更好支持。yml)与. properties 相反。