Java?properties?和?yml?的區(qū)別解析
properties和yml的區(qū)別
這幾天剛好看到Spring Boot當(dāng)中有兩種配置文件的方式,但是這兩種配置方式有什么區(qū)別呢?
properties和yml都是Spring Boot支持的兩種配置文件,它們可以看做Spring Boot在不同時期的兩種“產(chǎn)品”。在Spring Boot時代已經(jīng)不需要xml文件格式來配置文件了。取而代之的是properties或yml文件
properties配置文件屬于早期,也是目前創(chuàng)建Spring Boot(2.x)默認(rèn)的配置文件的格式,而yml可以看做是對properties配置文件的升級,屬于Spring Boot的新版配置文件
properties和yml的區(qū)別主要體現(xiàn)在以下4點(diǎn):
- 定義和定位不同
- 語法不同
yml更好的配置多種數(shù)據(jù)類型yml支持多種語言,通用性更好
① 定義和定位不同
properties翻譯成中文是“屬性”的意思,所以它在創(chuàng)建之初,就是用來在Spring Boot當(dāng)中設(shè)置屬性的。yml是YAML的縮寫,它的全稱是Yet Another Markup Language,翻譯成中文是“另一種標(biāo)記語言”
二者從定義可以看出:它們的定位和層次是完全不同的,properties只是用來配置一些屬性的。而yml的格局和期望更大,它的定位是”另一種標(biāo)記語言“。所以這波格局上來說yml是在天花板上了
② 語法不同
properties和yml的語法區(qū)別很大,properties配置文件的基本用法如下:
# 配置項(xiàng)目啟動端口 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的配置文件基本語法如下:
# 配置項(xiàng)目啟動端口
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: 123456yml格式有一個地方需要特別注意:冒號后面那個空格不能省略,否則程序會報錯
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當(dāng)中配置數(shù)組也有兩種寫法:
animal: - dog - pig - cat
animal: [dog, pig]
④ yml可以跨語言
properties格式的配置文件只適用于Spring Boot項(xiàng)目,也就是適用于Java開發(fā),而yml支持更多種開發(fā)語言,它可以用在Java、PHP、Python、Ruby、JavaScript、等語言當(dāng)中
作用:如果一個公司有不同語言的開發(fā)團(tuán)隊(duì),并且使用了配置中心,那么這些不同語言的開發(fā)團(tuán)隊(duì)是不是就可以使用同一份配置文件了
⑤ 總結(jié)
properties和yml都是Spring Boot支持的兩種配置文件,其中yml格式的配置文件可以看做是對properties配置文件的升級。它們的主要區(qū)別有4點(diǎn):定義和定位不同、語法不同、yml可以更好的配置多種數(shù)據(jù)類型、yml可以跨語言使用
到此這篇關(guān)于Java properties 和 yml 的區(qū)別的文章就介紹到這了,更多相關(guān)Java properties 和 yml 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)讀取txt文件并以在每行以空格取數(shù)據(jù)
今天小編就為大家分享一篇java實(shí)現(xiàn)讀取txt文件并以在每行以空格取數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Java采用setAsciiStream方法檢索數(shù)據(jù)庫指定內(nèi)容實(shí)例解析
這篇文章主要介紹了Java采用setAsciiStream方法檢索數(shù)據(jù)庫指定內(nèi)容,是比較實(shí)用的功能,需要的朋友可以參考下2014-08-08
SpringBoot集成pf4j實(shí)現(xiàn)插件開發(fā)功能的代碼示例
pf4j是一個插件框架,用于實(shí)現(xiàn)插件的動態(tài)加載,支持的插件格式(zip、jar),本文給大家介紹了SpringBoot集成pf4j實(shí)現(xiàn)插件開發(fā)功能的示例,文中通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-07-07
Java中優(yōu)先隊(duì)列PriorityQueue常用方法示例
這篇文章主要介紹了Java中優(yōu)先隊(duì)列PriorityQueue常用方法示例,PriorityQueue是一種特殊的隊(duì)列,滿足隊(duì)列的“隊(duì)尾進(jìn)、隊(duì)頭出”條件,但是每次插入或刪除元素后,都對隊(duì)列進(jìn)行調(diào)整,使得隊(duì)列始終構(gòu)成最小堆(或最大堆),需要的朋友可以參考下2023-09-09
springboot實(shí)現(xiàn)jar運(yùn)行復(fù)制resources文件到指定的目錄(思路詳解)
這篇文章主要介紹了springboot實(shí)現(xiàn)jar運(yùn)行復(fù)制resources文件到指定的目錄,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Java Collection集合遍歷運(yùn)行代碼實(shí)例
這篇文章主要介紹了Java Collection集合遍歷運(yùn)行代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
通過Java 程序獲取Word中指定圖片的坐標(biāo)位置
本文介紹通過Java程序獲取Word文檔中指定圖片的坐標(biāo)位置,程序運(yùn)行環(huán)境是jdk1.8開發(fā)環(huán)境idea,通過java程序代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-05-05

