Java properties 和 yml 的区别解析
ζ◇十点半就睡觉 人气:0properties和yml的区别
这几天刚好看到Spring Boot当中有两种配置文件的方式,但是这两种配置方式有什么区别呢?
properties
和yml
都是Spring Boot支持的两种配置文件,它们可以看做Spring Boot在不同时期的两种“产品”。在Spring Boot时代已经不需要xml
文件格式来配置文件了。取而代之的是properties
或yml
文件
properties配置文件属于早期,也是目前创建Spring Boot(2.x)默认的配置文件的格式,而yml
可以看做是对properties
配置文件的升级,属于Spring Boot的新版配置文件
properties
和yml
的区别主要体现在以下4点:
- 定义和定位不同
- 语法不同
yml
更好的配置多种数据类型yml
支持多种语言,通用性更好
① 定义和定位不同
properties
翻译成中文是“属性”的意思,所以它在创建之初,就是用来在Spring Boot当中设置属性的。yml
是YAML的缩写,它的全称是Yet Another Markup Language
,翻译成中文是“另一种标记语言”
二者从定义可以看出:它们的定位和层次是完全不同的,properties
只是用来配置一些属性的。而yml
的格局和期望更大,它的定位是”另一种标记语言“。所以这波格局上来说yml
是在天花板上了
② 语法不同
properties
和yml
的语法区别很大,properties
配置文件的基本用法如下:
# 配置项目启动端口 server.port=8080 # 开启调试模式 debug=true # 配置数据连接信息 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zy?characterEncoding=utf8&&useSSL=false spring.datasource.name=root spring.datasource.password=123456
从上述基本语法可以看出:properties的基本语法格式是key=value的形式,而yml
的配置文件基本语法如下:
# 配置项目启动端口 server: port: 8080 # 开启调试模式 debug: true # 配置数据连接信息 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/zy?characterEncoding=utf8&&useSSL=false name: root password: 123456
yml
格式有一个地方需要特别注意:冒号后面那个空格不能省略,否则程序会报错
properties
:
yml
:
从上述的对比可以看出,相比于properties
来说,yml
的语法更加简洁,并且可读性更高
③ yml更好的配置多种数据类型
yml
除了可以很好的配置数据类型之外,它还可以很方便的配置对象、集合等数据类型
在yml
中配置对象数据类型
student: id: 1 name: zhangsan age: 18
或者使用行内写法配置对象(与上面的写法效果一致)
student: {id: 1, name: zhangsna, age: 18}
在yml
当中配置数组也有两种写法:
animal: - dog - pig - cat
animal: [dog, pig]
④ yml可以跨语言
properties
格式的配置文件只适用于Spring Boot项目,也就是适用于Java开发,而yml
支持更多种开发语言,它可以用在Java、PHP、Python、Ruby、JavaScript、等语言当中
作用:如果一个公司有不同语言的开发团队,并且使用了配置中心,那么这些不同语言的开发团队是不是就可以使用同一份配置文件了
⑤ 总结
properties
和yml
都是Spring Boot支持的两种配置文件,其中yml
格式的配置文件可以看做是对properties
配置文件的升级。它们的主要区别有4点:定义和定位不同、语法不同、yml
可以更好的配置多种数据类型、yml
可以跨语言使用
加载全部内容