Spring Boot 配置文件格式 .yml VS .properties

1. 前言

一般来说,使用 IDEA 创建一个 Spring Boot 项目时,默认都会生成一个 application.properties 的配置文件。但有的朋友会更倾向于使用 application.yml,那么问题来了,这两种格式到底有啥区别呢?

2. 对比

开始比较之前,我们先来看看各自的实例:

  • .properties 格式
server.port=8081
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.url=jdbc:mysql://aliyuncs.com:3306/database?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=******
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  • .yml 格式
server:
  port: 8082
spring:
    datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/database
        username: root
        password: ******
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver

从上面的实例我们可以发现,两者的区别主要有以下几点:

  1. .properties 格式使用的是 键值对形式,而 .yml 格式则使用的是 树状结构
  2. .properties 格式通过 . 来连接,= 来赋值,结构上比较直接,而 .yml 格式则使用 : 来分层,结构上呈现树状结构,层次感明显,而且赋值时 : 的后边必须 接着一个空格再赋值

此外,.yml 配置时需要注意以下几点:

  1. 缩进必须用空格,不能用 Tab
  2. @PropertySource 注解不能加载 yml 文件

最后还有一个 执行先后顺序 的区别:如果一个工程中同时存在两种格式的文件,那么会优先加载 .yml 文件,然后再加载 .properties,而且后加载的 .properties 会覆盖之前加载的 .yml 文件。

3. 总结

总的来讲,.properties 格式的属性层级虽然存在冗余,但是更加直观、方便。而 .yml 格式虽然采用树状结构,属性层级冗余度大大降低,但当配置较多时,可读性会变差许多。而且如果考虑到要使用 @PropertySource 注解,.properties 会是更佳的选择。此外,为了适配更多的框架,还是更倾向于选择 .properties 格式。当然了,如果配置文件较少的情况下,使用 .yml 也会是不错的选择。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章