javascript
Spring Boot 核心配置文件详解
用過 Spring Boot 的都知道在 Spring Boot 中有以下兩種配置文件
- bootstrap (.yml 或者 .properties)
- application (.yml 或者 .properties)
為什么會(huì)有這兩種配置文件呢?大家都清楚它們的區(qū)別和具體使用場景嗎?
bootstrap/ application 的區(qū)別
特意去翻了下 Spring Boot 的官方文檔,沒有找到關(guān)于這兩種文件的具體定義,然后再翻了下 Spring Cloud 的官方文檔找到了它們的區(qū)別。
http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#thebootstrapapplicationcontext
認(rèn)真閱讀了下文檔,原文大概意思是這樣。
Spring Cloud 構(gòu)建于 Spring Boot 之上,在 Spring Boot 中有兩種上下文,一種是 bootstrap, 另外一種是 application, bootstrap 是應(yīng)用程序的父上下文,也就是說 bootstrap 加載優(yōu)先于 applicaton。bootstrap 主要用于從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。這兩個(gè)上下文共用一個(gè)環(huán)境,它是任何Spring應(yīng)用程序的外部屬性的來源。bootstrap 里面的屬性會(huì)優(yōu)先加載,它們默認(rèn)也不能被本地相同配置覆蓋。
因此,對(duì)比 application 配置文件,bootstrap 配置文件具有以下幾個(gè)特性。
- boostrap 由父 ApplicationContext 加載,比 applicaton 優(yōu)先加載
- boostrap 里面的屬性不能被覆蓋
bootstrap/ application 的應(yīng)用場景
application 配置文件這個(gè)容易理解,主要用于 Spring Boot 項(xiàng)目的自動(dòng)化配置。
bootstrap 配置文件有以下幾個(gè)應(yīng)用場景。
- 使用 Spring Cloud Config 配置中心時(shí),這時(shí)需要在 bootstrap 配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
- 一些固定的不能被覆蓋的屬性
- 一些加密/解密的場景;
以下這個(gè)截圖是一個(gè)國外網(wǎng)友問了一個(gè) Spring Cloud 工程師得到的回答。
總結(jié)
以上是生活随笔為你收集整理的Spring Boot 核心配置文件详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生产环境碰到系统CPU飙高和频繁GC,你
- 下一篇: StringBuffer、StringB