Java?properties?和?yml?的區(qū)別解析
properties和yml的區(qū)別
這幾天剛好看到Spring Boot當中有兩種配置文件的方式,但是這兩種配置方式有什么區(qū)別呢?
properties
和yml
都是Spring Boot支持的兩種配置文件,它們可以看做Spring Boot在不同時期的兩種“產(chǎn)品”。在Spring Boot時代已經(jīng)不需要xml
文件格式來配置文件了。取而代之的是properties
或yml
文件
properties配置文件屬于早期,也是目前創(chuàng)建Spring Boot(2.x)默認的配置文件的格式,而yml
可以看做是對properties
配置文件的升級,屬于Spring Boot的新版配置文件
properties
和yml
的區(qū)別主要體現(xiàn)在以下4點:
- 定義和定位不同
- 語法不同
yml
更好的配置多種數(shù)據(jù)類型yml
支持多種語言,通用性更好
① 定義和定位不同
properties
翻譯成中文是“屬性”的意思,所以它在創(chuàng)建之初,就是用來在Spring Boot當中設置屬性的。yml
是YAML的縮寫,它的全稱是Yet Another Markup Language
,翻譯成中文是“另一種標記語言”
二者從定義可以看出:它們的定位和層次是完全不同的,properties
只是用來配置一些屬性的。而yml
的格局和期望更大,它的定位是”另一種標記語言“。所以這波格局上來說yml
是在天花板上了
② 語法不同
properties
和yml
的語法區(qū)別很大,properties
配置文件的基本用法如下:
# 配置項目啟動端口 server.port=8080 # 開啟調(diào)試模式 debug=true # 配置數(shù)據(jù)連接信息 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 # 開啟調(diào)試模式 debug: true # 配置數(shù)據(jù)連接信息 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更好的配置多種數(shù)據(jù)類型
yml
除了可以很好的配置數(shù)據(jù)類型之外,它還可以很方便的配置對象、集合等數(shù)據(jù)類型
在yml
中配置對象數(shù)據(jù)類型
student: id: 1 name: zhangsan age: 18
或者使用行內(nèi)寫法配置對象(與上面的寫法效果一致)
student: {id: 1, name: zhangsna, age: 18}
在yml
當中配置數(shù)組也有兩種寫法:
animal: - dog - pig - cat
animal: [dog, pig]
④ yml可以跨語言
properties
格式的配置文件只適用于Spring Boot項目,也就是適用于Java開發(fā),而yml
支持更多種開發(fā)語言,它可以用在Java、PHP、Python、Ruby、JavaScript、等語言當中
作用:如果一個公司有不同語言的開發(fā)團隊,并且使用了配置中心,那么這些不同語言的開發(fā)團隊是不是就可以使用同一份配置文件了
⑤ 總結(jié)
properties
和yml
都是Spring Boot支持的兩種配置文件,其中yml
格式的配置文件可以看做是對properties
配置文件的升級。它們的主要區(qū)別有4點:定義和定位不同、語法不同、yml
可以更好的配置多種數(shù)據(jù)類型、yml
可以跨語言使用
到此這篇關于Java properties 和 yml 的區(qū)別的文章就介紹到這了,更多相關Java properties 和 yml 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java的MyBatis框架中MyBatis Generator代碼生成器的用法
這篇文章主要介紹了Java的MyBatis框架中Mybatis Generator代碼生成器的用法,Mybatis Generator主要被用來生成繁瑣的配置文件來提高效率,需要的朋友可以參考下2016-04-04使用hibernate和struts2實現(xiàn)分頁功能的示例
本篇文章主要介紹了使用hibernate和struts2實現(xiàn)分頁功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01Springboot 讀取 yml 配置文件里的參數(shù)值
本文主要介紹了Springboot 讀取 yml 配置文件里的參數(shù)值,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Java notify和notifyAll的區(qū)別和相同
本文主要介紹Java notify和notifyAll的知識,這里整理詳細的資料來說明notify 和NotifAll的區(qū)別,有需要的小伙伴可以參考下2016-09-09