properties和yml是SpringBoot支持的两个配置文件,可以看作是SpringBoot在不同时期的两个“产品”。在SpringBoot时代,不再需要使用XML文件格式来配置项目,取而代之的是properties或者yml文件。properties配置文件属于早期,也是创建SpringBoot(2.x)项目时默认的配置文件格式,而yml可以看作是properties配置文件的升级版,属于“新版本”的SpringBoot配置文件。properties和yml的区别主要体现在以下四点:定义和定位不同;不同的语法;yml更好的配置多种数据类型;yml支持多种语言,通用性更强。区别一:定义和定位不同的属性翻译成中文就是“属性”的意思,所以在SpringBoot创建之初就是用来设置属性的。yml是YAML的缩写,它的全称是YetAnotherMarkupLanguage,翻译成中文就是“另一种标记语言”。所以从两者的定义,可以看出他们的定位和层次是完全不同的。properties只是用来设置一些属性配置,而yml有更大的格局和视野,它的定位是“另一种标记语言”,所以在布局方面,yml与properties相距几个街区。区别二:不同的语法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.从上面配置的驱动文件可以看出:properties的基本语法格式是“key=value”的形式,yml配置文件的基本用法如下:#配置项目启动端口号server:port:9090#启用调试模式debug:true#配置数据连接信息spring:datasource:url:jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8username:rootpassword:rootdriver-class-名称:来自上述配置文件的com.mysql.cj.jdbc.Driver可以看出yml的基本语法格式是“key:value”的形式,冒号后面的空格不能省略,否则项目启动的时候会报错:来自上面的连接信息properties和yml配置数据库,可以看出相应的和properties相比,yml的语法更加简洁,可读性更强。它们的区别如下:区别三:yml更好的配置了多种数据类型。yml除了可以很好地配置基本数据类型外,还可以非常方便地配置对象、集合等数据类型。在yml中配置对象数据类型:student:id:1name:Javaage:18或者使用inline写法配置对象类型(与上面的写法一致):student:{id:1,name:Java,age:18)yml中数组的写法也有两种,可以这样写:animal:-Dog-Cat或者使用内联写法:animal:[Dog,Cat]区别4:yml可以跨语言属性的格式的配置文件只适用于SpringBoot项目只适用于Java语言,而yml支持更多的开发语言。可用于Java、PHP、Python、Ruby、JavaScript、Perl、Golang等语言。至于效果?如果一个公司有多个不同语言的开发团队,使用配置中心(在线配置文件),那么这些不同语言的开发团队可以使用同一个配置文件,也方便后期的管理和维护。总结properties和yml是SpringBoot支持的两个配置文件,yml格式的配置文件可以看作是properties配置文件的升级。它们之间主要有四点区别:定义和定位不同,语法不同:yml语法更简单易读,yml可以更好的配置多种数据类型,比如对象和集合,yml可以跨语言使用,通用性更好。判断是非在自己,名誉在别人,得失在人数。
