Spring Boot的application.yml与application.properties


Answers:


71

好吧,它们只是不同的数据格式。哪个更容易阅读?那显然是主观的。这是一篇有用的博客文章。

spring-boot配置而言,请注意,使用仅有一个记录的缺点YAML。根据文档

无法通过@PropertySource注释加载YAML文件。因此,如果您需要以这种方式加载值,则需要使用属性文件。


1
YAML配置格式是否已在整个SpringBoot世界中广泛接受?当我们来到仅提供属性格式配置的第3方库时,是否容易将其自己转换为yaml格式?
布鲁斯·孙

@BruceSun似乎不那么被接受,因为官方文档很少使用它,因此使用.properties例如:docs.spring.io/spring-boot/docs/current/reference/html / ...但是我公司的spring boot项目模板具有yml ...
masterxilo

4
它们不仅是不同的数据格式。YAML支持utf-8,application.properties不支持
Nurlan

1
关于此主题的另一个问题:当库要求我为application.yml文件设置配置时,我是否可以假设仅在application.properties文件中设置属性即可加载它?确切地说,为两个文件加载属性是否都是相同的机制?
DavidFariña19年

4
同样,当我的代码库,同时提供了一个会发生什么application.yaml,以及application.properties?我可以仅将其中的内容.yaml移入.properties(按要求更改格式)并期望事情继续以相同的方式进行吗?
Erik Kaplun

28

好问题,我也立刻对此感到困惑。

得出结论,据我所知,以下是一些差异,

1.). properties文件:它以顺序格式存储数据。 .yml文件:它以分层格式存储数据。

2.). properties文件:它仅支持键值对,基本上是字符串值。 .yml文件:它支持键值对以及映射,列表和标量类型值。

3.). properties文件:该文件专门用于JAVA。 .yml文件: JAVA,Python,ROR等许多语言都使用此文件类型。

4.)如果要处理多个配置文件,请使用 .properties文件:在这种情况下,您需要为每个配置文件管理单独的文件。 .yml文件:在此文件类型中,您只需要管理单个文件并将特定配置文件的配置数据放入其中。

5.)对于Spring项目, .properties文件: @PropertySource注释支持此文件类型。 .yml文件: @PropertySource批注不支持此文件类型。

目前,我只知道这一点!!!


好的答案,只是关于第2点的 说明.properties file:可以支持键值对以及映射,列表和标量类型值。+ point#3 .properties file可以与任何语言一起使用
ahmednabil88 '20

1

一个显着的区别是属性在每个文件中的表示方式。YAML文件可以使用一致的空格来表示层次结构,而属性文件可以使用=来表示属性值。

对于前。

列表以YAML分层表示:

标头:

  - user-agent
  - x-wag-diagonalsize

列表可以在属性文件中表示为内联列表(用逗号分隔):

标头=用户代理,x-wag-diagonalsize

另一个区别是我们可以将多个配置文件添加到单个yaml文件中。

例如,我们可以将application.yaml(应用程序特定属性)和bootstrap.yaml(服务器特定属性)添加到单个config.yaml文件中

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.