Java properties 和 yml 的区别解析
properties和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
可以跨语言使用
到此这篇关于Java properties 和 yml 的区别的文章就介绍到这了,更多相关Java properties 和 yml 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关文章