在我的项目中,我目前正在使用application.yml
进行配置。 Spring Initializr生成application.properties
?每个人的优缺点是什么?
答案 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文件中