天天看點

Spring Boot 配置檔案格式 .yml VS .properties

一般來說,使用 IDEA 建立一個 Spring Boot 項目時,預設都會生成一個 <code>application.properties</code> 的配置檔案。但有的朋友會更傾向于使用 <code>application.yml</code>,那麼問題來了,這兩種格式到底有啥差別呢?

開始比較之前,我們先來看看各自的執行個體:

.properties 格式

.yml 格式

從上面的執行個體我們可以發現,兩者的差別主要有以下幾點:

<code>.properties</code> 格式使用的是 鍵值對形式,而 <code>.yml</code> 格式則使用的是 樹狀結構

<code>.properties</code> 格式通過 <code>.</code> 來連接配接,<code>=</code> 來指派,結構上比較直接,而 <code>.yml</code> 格式則使用 <code>:</code> 來分層,結構上呈現樹狀結構,層次感明顯,而且指派時 <code>:</code> 的後邊必須 接着一個空格再指派

此外,<code>.yml</code> 配置時需要注意以下幾點:

縮進必須用空格,不能用 Tab

<code>@PropertySource</code> 注解不能加載 <code>yml</code> 檔案

最後還有一個 執行先後順序 的差別:如果一個工程中同時存在兩種格式的檔案,那麼會優先加載 <code>.yml</code> 檔案,然後再加載 <code>.properties</code>,而且後加載的 <code>.properties</code> 會覆寫之前加載的 <code>.yml</code> 檔案。

總的來講,<code>.properties</code> 格式的屬性層級雖然存在備援,但是更加直覺、友善。而 <code>.yml</code> 格式雖然采用樹狀結構,屬性層級備援度大大降低,但當配置較多時,可讀性會變差許多。而且如果考慮到要使用 <code>@PropertySource</code> 注解,<code>.properties</code> 會是更佳的選擇。此外,為了适配更多的架構,還是更傾向于選擇 <code>.properties</code> 格式。當然了,如果配置檔案較少的情況下,使用 <code>.yml</code> 也會是不錯的選擇。

繼續閱讀