properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同期间的两款“产品”。在 Spring Boot 时期已经不须要利用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。
properties 配置文件属于早期,也是目前创建 Spring Boot(2.x)项目时默认的配置文件格式,而 yml 可以看做是对 properties 配置文件的升级,属于 Spring Boot 的“新版”配置文件。
properties 和 yml 的差异紧张表示在以下 4 点:

properties 翻译成中文是“属性”的意思,以是它在创建之初,便是用来在 Spring Boot 中设置属性的。
yml 是 YAML 是缩写,它的全称 Yet Another Markup Language,翻译成中文是“另一种标记措辞”。
以是从二者的定义可以看出:它们的定位和层次是完备不同的,properties 只是用来设置一些属性配置的,而 yml 的格局和愿景更大,它的定位是“另一种标记措辞”,以是从格局上来讲 yml 就甩 properties 好几条街。
差异2:语法不同properties 和 yml 语法差异很大,properties 配置文件的基本用法如下:
# 配置项目启动端口号server.port=8088# 开启调试模式debug=true# 配置数据连接信息spring.datasource.url=jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
从上述配置文件可以看出:properties 的基本语法格式是“key=value”的形式,而 yml 的配置文件的基本用法如下:
# 配置项目启动端口号server: port: 9090# 开启调试模式debug: true# 配置数据连接信息spring: datasource: url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8 username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver
从上述配置文件可以看出:yml 的基本语法格式是“key: value”的形式,且冒号后面的空格是不能被省略的,否则项目启动会报错:
从上述 properties 和 yml 配置数据库的连接信息可以看出,比较于 properties 来说,yml 的语法更简洁,并且可读性更高,它们的差异如下:
差异3:yml 更好的配置多种数据类型
yml 除了可以很好的配置根本数据类型之外,它还可以很方便的配置工具、凑集等数据类型。
在 yml 中配置工具数据类型:
student: id: 1 name: Java age: 18
或者是利用行内写法配置工具类型(与上面的写法的效果同等):
student: {id: 1,name: Java,age: 18}
在 yml 中配置数组也有两种写法,可以这样写:
animal: - Dog - Cat
或者利用行内写法:
animal: [Dog, Cat]
差异4:yml 可以跨措辞
properties 格式的配置文件只适用于 Spring Boot 项目,也便是只适用于 Java 措辞,而 yml 支持更多的开拓措辞,它可以用在 Java、PHP、Python、Ruby、JavaScript、Perl、Golang 等措辞中。
至于浸染嘛?如果一个公司有多个不同措辞的开拓团队,并且利用了配置中央(在线配置文件)的条件下,那么这些不同措辞的开拓团队就可以利用同一份配置文件了,也方便后期的管理和掩护。
总结properties 和 yml 都是 Spring Boot 支持的两种配置文件,个中 yml 格式的配置文件可以看作是对 properties 配置文件的升级。它们的紧张差异有 4 点:定义和定位不同、语法不同:yml 的语法更大略,且可读性更高、yml 可以更好的配置多种数据类型,比如工具和凑集、yml 可以跨措辞利用,通用性更好。
是非审之于己,毁誉听之于人,得失落安之于数。
"大众年夜众号:Java口试真题解析
口试合集:https://gitee.com/mydb/interview