新聞中心
properties 和 yml 都是 Spring Boot 支持的兩種配置文件,它們可以看作是 Spring Boot 在不同時(shí)期的兩款“產(chǎn)品”。在 Spring Boot 時(shí)代已經(jīng)不需要使用 XML 文件格式來(lái)配置項(xiàng)目了,取而代之的是 properties 或 yml 文件。

成都創(chuàng)新互聯(lián)公司主營(yíng)金水網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā),金水h5重慶小程序開(kāi)發(fā)搭建,金水網(wǎng)站營(yíng)銷(xiāo)推廣歡迎金水等地區(qū)企業(yè)咨詢
properties 配置文件屬于早期,也是目前創(chuàng)建 Spring Boot(2.x)項(xiàng)目時(shí)默認(rèn)的配置文件格式,而 yml 可以看做是對(duì) properties 配置文件的升級(jí),屬于 Spring Boot 的“新版”配置文件。
properties 和 yml 的區(qū)別主要體現(xiàn)在以下 4 點(diǎn):
- 定義和定位不同;
- 語(yǔ)法不同;
- yml 更好的配置多種數(shù)據(jù)類(lèi)型;
- yml 支持多種語(yǔ)言、通用性更好。
區(qū)別1:定義和定位不同
properties 翻譯成中文是“屬性”的意思,所以它在創(chuàng)建之初,就是用來(lái)在 Spring Boot 中設(shè)置屬性的。yml 是 YAML 是縮寫(xiě),它的全稱(chēng) Yet Another Markup Language,翻譯成中文是“另一種標(biāo)記語(yǔ)言”。
所以從二者的定義可以看出:它們的定位和層次是完全不同的,properties 只是用來(lái)設(shè)置一些屬性配置的,而 yml 的格局和愿景更大,它的定位是“另一種標(biāo)記語(yǔ)言”,所以從格局上來(lái)講 yml 就甩 properties 好幾條街。
區(qū)別2:語(yǔ)法不同
properties 和 yml 語(yǔ)法區(qū)別很大,properties 配置文件的基本用法如下:
# 配置項(xiàng)目啟動(dòng)端口號(hào)
server.port=8088
# 開(kāi)啟調(diào)試模式
debug=true
# 配置數(shù)據(jù)連接信息
spring.datasource.url=jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
從上述配置文件可以看出:properties 的基本語(yǔ)法格式是“key=value”的形式,而 yml 的配置文件的基本用法如下:
# 配置項(xiàng)目啟動(dòng)端口號(hào)
server:
port: 9090
# 開(kāi)啟調(diào)試模式
debug: true
# 配置數(shù)據(jù)連接信息
spring:
datasource:
url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
從上述配置文件可以看出:yml 的基本語(yǔ)法格式是“key: value”的形式,且冒號(hào)后面的空格是不能被省略的,否則項(xiàng)目啟動(dòng)會(huì)報(bào)錯(cuò):
從上述 properties 和 yml 配置數(shù)據(jù)庫(kù)的連接信息可以看出,相比于 properties 來(lái)說(shuō),yml 的語(yǔ)法更簡(jiǎn)潔,并且可讀性更高,它們的區(qū)別如下:
區(qū)別3:yml 更好的配置多種數(shù)據(jù)類(lèi)型
yml 除了可以很好的配置基礎(chǔ)數(shù)據(jù)類(lèi)型之外,它還可以很方便的配置對(duì)象、集合等數(shù)據(jù)類(lèi)型。
在 yml 中配置對(duì)象數(shù)據(jù)類(lèi)型:
student:
id: 1
name: Java
age: 18
或者是使用行內(nèi)寫(xiě)法配置對(duì)象類(lèi)型(與上面的寫(xiě)法的效果一致):
student: {id: 1,name: Java,age: 18}在 yml 中配置數(shù)組也有兩種寫(xiě)法,可以這樣寫(xiě):
animal:
- Dog
- Cat
或者使用行內(nèi)寫(xiě)法:
animal: [Dog, Cat]
區(qū)別4:yml 可以跨語(yǔ)言
properties 格式的配置文件只適用于 Spring Boot 項(xiàng)目,也就是只適用于 Java 語(yǔ)言,而 yml 支持更多的開(kāi)發(fā)語(yǔ)言,它可以用在 Java、PHP、Python、Ruby、JavaScript、Perl、Golang 等語(yǔ)言中。
至于作用嘛?如果一個(gè)公司有多個(gè)不同語(yǔ)言的開(kāi)發(fā)團(tuán)隊(duì),并且使用了配置中心(在線配置文件)的前提下,那么這些不同語(yǔ)言的開(kāi)發(fā)團(tuán)隊(duì)就可以使用同一份配置文件了,也方便后期的管理和維護(hù)。
總結(jié)
properties 和 yml 都是 Spring Boot 支持的兩種配置文件,其中 yml 格式的配置文件可以看作是對(duì) properties 配置文件的升級(jí)。它們的主要區(qū)別有 4 點(diǎn):定義和定位不同、語(yǔ)法不同:yml 的語(yǔ)法更簡(jiǎn)單,且可讀性更高、yml 可以更好的配置多種數(shù)據(jù)類(lèi)型,比如對(duì)象和集合、yml 可以跨語(yǔ)言使用,通用性更好。
文章題目:面試突擊:Properties和Yml有什么區(qū)別?
文章源于:http://m.fisionsoft.com.cn/article/cdscosj.html


咨詢
建站咨詢
