對於SpringBoot專案而言,這兩個都是配置檔案,但是很多專案都是使用的是application.yml檔案,為什麼?
回覆列表
-
1 # 此生唯一
-
2 # hellokittyqwe
兩個關鍵點:
第一個是yml是支援中文內容的,properties想使用中文只能用unicode編碼
第二個是順序問題,properties是不保證載入順序的,yml有先後順序,實際用例比如springcloud的zuul閘道器路由配置,如果一個uri同時滿足兩個匹配規則,properties你是不知道它到底使用了哪個規則的,而yml則一定是使用了靠前的那個路由規則
-
3 # 窮讓我全能
問這個問題的人應該是剛剛接觸到yaml檔案格式,其實沒本質的區別,都是配置檔案的形式,相對於傳統的properties,它具有更好的閱讀辯識,簡潔的風格,也支援utf-8編碼。缺點就是格式要求嚴謹,出問題不太好排查,不過還是建議用用yaml風格的配置檔案
熟悉springboot的朋友都知道,原本的JAVA專案中常用的application.properties配置檔案可以使用yml檔案取代,兩者的作用其實是一樣的,都是用來配置全域性性的,基本不變的屬性的資料格式序列化,用於在專案初始化的時候載入進容器,在程式中使用。
兩者的區別就像米飯和麵條,都可以用來填飽肚子,兩者顯示不同,語法不同,作用相同。
至於為什麼要使用yaml檔案,應該是這樣的。。。
①,yml配置是樹狀的資料格式:看起來更加的直觀。
②,yml是跨語言的:可以在包括JAVA,go,python等大量的語言中使用,比如做雲計算使用go和java的時候,可以透過配置中心使用同一份配置!
當然,從properties轉yml檔案會遇到很多坑,在此記錄下:
1,層級關係縮排不能用tab鍵:每次都數2.4.6這樣打空格。。。
2,每個key的後面需要加:,每個:後面還需要加一個空格!
3,列表的短橫線後面需要有個空格。
不知道為什麼springboot推薦使用yml,反正除了不用的列表功能沒看到有啥好的,相反properties轉yml的時候還遇到一些坑,不過掌握了之後就很easy了,關於這種小細節的東西,更有很多分享,敬請關注。。。