Java SpringBoot 中 YAML(.yml) 檔案和 .properties 檔案的區別


SpringBoot 開發人員有時可能需要外部配置來定義 SpringBoot 應用程式的功能,以便我們可以在不同的環境中使用相同的應用程式程式碼。為此,我們可以使用 YAML 和 .properties 檔案來儲存所需的功能。儘管功能相似,但在語法和附加功能方面它們之間存在一些區別。在本文中,我們將探討 .yml 和 .properties 檔案之間存在的主要區別。

YAML 與 Properties 檔案

在本節中,我們將介紹 YAML 和 properties 檔案,稍後我們將建立一個表格來描述這兩個檔案之間的區別。

YAML

它是首字母縮略詞,代表 YAML Ain't Markup Language。在一些書籍和文章中,它的全稱寫成 Yet Another Markup Language,這也是正確的。YAML 是一種人類可讀的資料序列化格式,它使用縮排表示結構,並使用冒號分隔鍵值對。

Spring 配置檔案是 Spring 框架的核心元件,允許我們將應用程式的各個部分隔離開來,使其僅在特定環境中可用。為此,我們只需要一個 YAML 檔案,因為它可以在同一個檔案中包含多個配置檔案。

YAML 示例

spring:
   application:
      name: spring1
   datasource:
      url: jdbc:mysql://:9092/databasename
      username: myname
      password: myPasswrd

上面的框包含一個 YAML 示例檔案的內容。“application”部分設定了應用程式的名稱,在“datasource”部分設定了資料庫的使用者名稱、密碼和 URL。

Properties 檔案

它們是簡單的文字檔案,使用 key=value 格式儲存配置屬性。每個屬性都位於新的一行,註釋以井號 (#) 開頭。與 YAML 一樣,它也提供執行應用程式所需的配置。

預設情況下,Spring Boot 支援 .properties 檔案。假設我們為單個應用程式建立 .yml 和 .properties 檔案,則 Spring Boot 將優先於 .yml 檔案使用 .properties 檔案並執行它而不是 .yml 檔案。

Properties 檔案示例

# name of the application
spring.application.name= spring1
# making connection with database
spring.datasource.url= jdbc:mysql://:9092/databasename
spring.datasource.username= myname
spring.datasource.password= myPasswrd

這是 YAML 格式的 .properties 表示。我們可以清楚地看到它的格式與 YAML 完全不同,而且難以理解。帶有 # 符號的文字指定註釋。

YAML 和 Properties 檔案的區別

從以上討論中,我們可以得出 YAML 和 properties 檔案之間以下區別:

YAML

Properties 檔案

此類檔案的副檔名為 .yml。

此類檔案的副檔名為 .properties。

它需要正確的縮排,否則會遇到錯誤。

此檔案不需要縮排。

在 YAML 檔案中,不需要一遍遍重複相同的鍵。

在 properties 檔案中,鍵在每一行都會重複。

它比 properties 檔案更易於人類閱讀。

它是一種相對較難理解的格式。

YAML 檔案支援分層格式。

properties 檔案支援順序格式。

它可以支援多種語言,包括 Java、Python 和 Ruby。

它只能支援單一程式語言,即 Java。

我們可以在單個 YAML 檔案中包含多個 Spring 配置檔案。

對於 Spring 配置檔案的每個環境,我們需要單獨的 properties 檔案。

結論

在本文中,我們學習了 YAML 和 properties 檔案之間的區別。這兩個檔案都用於定義 SpringBoot 應用程式的功能。使用 YAML 檔案比 properties 檔案更有優勢,這就是為什麼開發人員更喜歡 YAML 檔案而不是 properties 檔案的原因。

更新於:2023年8月17日

2K+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.