application.yml与Spring Boot的application.properties

时间:2017-11-23 20:36:13

标签: spring-boot properties configuration format yaml

在我的项目中,我目前正在使用application.yml进行配置。 Spring Initializr生成application.properties?每个人的优缺点是什么?

3 个答案:

答案 0 :(得分:39)

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

spring-boot配置而言,请注意使用YAML时只有一个记录的缺点。根据{{​​3}}:

  

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

答案 1 :(得分:7)

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

说到重点, 据我所知,以下是一些差异,

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

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

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

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

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

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

答案 2 :(得分:0)

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

例如。

列表以YAML分层表示:

标题:

  - user-agent
  - x-wag-diagonalsize

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

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

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

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