> 文章列表 > Spring Boot properties和yml

Spring Boot properties和yml

Spring Boot properties和yml

面试中有被问到优先级, 平时项目中通常只用到一种, 所以记录下

 properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。

properties: properties配置文件属于早期,也是目前创建 Spring Boot(2.x)项目时默认的配置文件格式;

yml :yml可以看做是对 properties 配置文件的升级,属于 Spring Boot 的“新版”配置文件。

 存放路径

两种配置文件一般都是放在src/main/resources目录下

优先级别 

properties的优先级会高于yml,因为正常的情况是先加载yml,接下来加载properties文件。所以如果项目中同时存在这两个文件,两个文件配置同一个配置参数,properties会生效,yml不会生效。

区别说明 

两种配置文件示例如下:

# properties
server.port=8088	# 配置项目启动端口号
debug=true	# 开启调试模式
# 配置数据连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:8080/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# yaml
server:port: 8088  # 配置项目启动端口号
debug: true  # 开启调试模式
spring:  # 配置数据连接信息datasource:url: jdbc:mysql://127.0.0.1:8080/test?characterEncoding=utf8username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver

梳理区别:

  1. 结构不同
    yml采用树形结构,更有层次感,可读性很强;相反,properties 则更为直接。可以看出properties存在着数据冗余,一切配置都需要从头写到尾。

  2. 语法不同
    properties 的基本语法格式是“key=value”的形式;yml 的基本语法格式是“key: value”的形式

其他说明

yml 需要注意坑:

  1. 冒号后面需要加空格
  2. 在yml中缩进一定不能使用TAB,否则会报很奇怪的错误,缩进只能用空格

文章参考:properties和yml进行对比 - DJ同学 - 博客园