Spring Boot兩種配置文件properties和yml區(qū)別
Spring Boot 支持的兩種配置文件
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 點:
- 定義和定位不同;
- 語法不同;
- yml 更好的配置多種數(shù)據(jù)類型;
- yml 支持多種語言、通用性更好。
區(qū)別1:定義和定位不同
properties 翻譯成中文是“屬性”的意思,所以它在創(chuàng)建之初,就是用來在 Spring Boot 中設(shè)置屬性的。
yml 是 YAML 是縮寫,它的全稱 Yet Another Markup Language,翻譯成中文是“另一種標(biāo)記語言”。
所以從二者的定義可以看出:它們的定位和層次是完全不同的,properties 只是用來設(shè)置一些屬性配置的,而 yml 的格局和愿景更大,它的定位是“另一種標(biāo)記語言”,所以從格局上來講 yml 就甩 properties 好幾條街。
區(qū)別2:語法不同
properties 和 yml 語法區(qū)別很大,properties 配置文件的基本用法如下:
# 配置項目啟動端口號 server.port=8088 # 開啟調(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 的基本語法格式是“key=value”的形式,而 yml 的配置文件的基本用法如下:
# 配置項目啟動端口號
server:
port: 9090
# 開啟調(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 的基本語法格式是“key: value”的形式,且冒號后面的空格是不能被省略的,否則項目啟動會報錯:

從上述 properties 和 yml 配置數(shù)據(jù)庫的連接信息可以看出,相比于 properties 來說,yml 的語法更簡潔,并且可讀性更高,它們的區(qū)別如下:

區(qū)別3:yml 更好的配置多種數(shù)據(jù)類型
yml 除了可以很好的配置基礎(chǔ)數(shù)據(jù)類型之外,它還可以很方便的配置對象、集合等數(shù)據(jù)類型。
在 yml 中配置對象數(shù)據(jù)類型:
student: id: 1 name: Java age: 18
或者是使用行內(nèi)寫法配置對象類型(與上面的寫法的效果一致):
student: {id: 1,name: Java,age: 18}在 yml 中配置數(shù)組也有兩種寫法,可以這樣寫:
animal: - Dog - Cat
或者使用行內(nèi)寫法:
animal: [Dog, Cat]
區(qū)別4:yml 可以跨語言
properties 格式的配置文件只適用于 Spring Boot 項目,也就是只適用于 Java 語言,而 yml 支持更多的開發(fā)語言,它可以用在 Java、PHP、Python、Ruby、JavaScript、Perl、Golang 等語言中。
至于作用嘛?如果一個公司有多個不同語言的開發(fā)團(tuán)隊,并且使用了配置中心(在線配置文件)的前提下,那么這些不同語言的開發(fā)團(tuán)隊就可以使用同一份配置文件了,也方便后期的管理和維護(hù)。
總結(jié)
properties 和 yml 都是 Spring Boot 支持的兩種配置文件,其中 yml 格式的配置文件可以看作是對 properties 配置文件的升級。它們的主要區(qū)別有 4 點:定義和定位不同、語法不同:yml 的語法更簡單,且可讀性更高、yml 可以更好的配置多種數(shù)據(jù)類型,比如對象和集合、yml 可以跨語言使用,通用性更好。
java面試合集:https://gitee.com/mydb/interview
以上就是Spring Boot兩種配置文件properties和yml區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot properties yml區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決IDEA2020.1.2IDEA打不開的問題(最新分享)
由于idea安裝多了某個jar,點擊出現(xiàn)讀條后閃退情況,接下來通過本文給大家分享解決IDEA2020.1.2IDEA打不開的問題,非常不錯,具有一定的參考借鑒價值,感興趣的朋友跟隨小編一起看看吧2020-07-07
springboot上傳zip包并解壓至服務(wù)器nginx目錄方式
這篇文章主要介紹了springboot上傳zip包并解壓至服務(wù)器nginx目錄方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
使用dom4j遞歸解析節(jié)點內(nèi)還含有多個節(jié)點的xml
這篇文章主要介紹了使用dom4j遞歸解析節(jié)點內(nèi)還含有多個節(jié)點的xml,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas
這篇文章主要介紹了Java動態(tài)追蹤技術(shù)探究之從JSP到Arthas,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06
SpringBoot 項目如何在tomcat容器中運行的實現(xiàn)方法
這篇文章主要介紹了SpringBoot 項目如何在tomcat容器中運行的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringBoot Redis緩存數(shù)據(jù)實現(xiàn)解析
這篇文章主要介紹了SpringBoot Redis緩存數(shù)據(jù)實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
SpringBoot中自定義首頁(默認(rèn)頁)及favicon的方法
這篇文章主要介紹了SpringBoot中如何自定義首頁(默認(rèn)頁)及favicon,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Java Javassist輕松操作字節(jié)碼的技術(shù)指南
Javassist 是一個 Java 庫,允許你在運行時定義新類或修改現(xiàn)有類文件,本文主要為大家詳細(xì)介紹了如何使用Javassist輕松操作字節(jié)碼,感興趣的小伙伴可以參考一下2025-04-04

