application.properties文件和application.yml文件有什麼區別?

蘇小傻


熟悉springboot的朋友都知道,原本的JAVA項目中常用的application.properties配置文件可以使用yml文件取代,兩者的作用其實是一樣的,都是用來配置全局性的,基本不變的屬性的數據格式序列化,用於在項目初始化的時候加載進容器,在程序中使用。



兩者的區別就像米飯和麵條,都可以用來填飽肚子,兩者顯示不同,語法不同,作用相同。

至於為什麼要使用yaml文件,應該是這樣的。。。

①,yml配置是樹狀的數據格式:看起來更加的直觀。

②,yml是跨語言的:可以在包括JAVA,go,python等大量的語言中使用,比如做雲計算使用go和java的時候,可以通過配置中心使用同一份配置!

③,支持列表:區別於properties只支持鍵值對數據,yml配置文件支持列表,如下所示:

當然,從properties轉yml文件會遇到很多坑,在此記錄下:

1,層級關係縮進不能用tab鍵:每次都數2.4.6這樣打空格。。。

2,每個key的後面需要加:,每個:後面還需要加一個空格!

3,列表的短橫線後面需要有個空格。

不知道為什麼springboot推薦使用yml,反正除了不用的列表功能沒看到有啥好的,相反properties轉yml的時候還遇到一些坑,不過掌握了之後就很easy了,

關於這種小細節的東西,更有很多分享,敬請關注。。。


謝逅架構


兩個關鍵點:

第一個是yml是支持中文內容的,properties想使用中文只能用unicode編碼

第二個是順序問題,properties是不保證加載順序的,yml有先後順序,實際用例比如springcloud的zuul網關路由配置,如果一個uri同時滿足兩個匹配規則,properties你是不知道它到底使用了哪個規則的,而yml則一定是使用了靠前的那個路由規則


hellokittyqwe


問這個問題的人應該是剛剛接觸到yaml文件格式,其實沒本質的區別,都是配置文件的形式,相對於傳統的properties,它具有更好的閱讀辯識,簡潔的風格,也支持utf-8編碼。缺點就是格式要求嚴謹,出問題不太好排查,不過還是建議用用yaml風格的配置文件


分享到:


相關文章: