當前位置:成語大全網 - 書法字典 - springboot配置文件摘要

springboot配置文件摘要

Springboot本身支持多種靈活的配置方式,給springboot程序的開發帶來了極大的靈活性和擴展性,但同時也因為過於靈活,往往導致相關屬性的配置,卻沒有生效。

本文總結了springboot配置文件的原理以及多個配置文件生效的順序。

Springboot配置文件支持靈活的路徑和靈活的文件名,可以用壹個變量表達式概括如下:

部分源代碼如下:

當有多個配置文件滿足上述變量表達式時,會有壹個配置優先級。假設

當上述每個條件組合在壹起時,配置文件的最大數量如下,順序是從上到下:

獲取屬性時,從上到下遍歷上述文件生成的屬性資源對象PropertySource,如果遇到匹配的鍵就直接返回。

總結壹下:如果同壹個鍵的屬性只出現壹次,直接取值就可以了。如果同壹個鍵的屬性出現多次,則取順序最高的屬性資源對象。此外,這些文件都是可選的。

請註意,如果在同壹位置配置了多個具有相同文件名的文件,則只會選擇壹個文件。例如,在classpath:/中,有兩個文件application.yml,如下所示:

根據classloader的類路徑列表,只會選擇出現的第壹個文件。因為springboot在加載配置文件時在底部使用了以下方法:

這兩個方法將只獲得classloader類的ucp屬性中的第壹個匹配值。如果對springboot本身的機制不滿意,想獲取classpath:/ path下applicaiton.yml的所有文件,可以使用以下方法:

本文總結了springboot配置文件的原理以及多個配置文件生效的順序。如果添加了配置文件或者在配置文件中添加了屬性但沒有生效,可以參考上面springboot配置文件的表達式和配置文件的有效順序進行故障排除。

後面會有文章討論如何基於springboot的配置原理實現壹個自定義的配置讀取方法。