Spring Boot 中application.yml與bootstrap.yml的區別
阿新 • • 發佈:2019-01-29
yml與properties
其實yml和properties檔案是一樣的原理,且一個專案上要麼yml或者properties,二選一的存在。
推薦使用yml,更簡潔。
bootstrap與application
1.載入順序
這裡主要是說明application和bootstrap的載入順序。
- bootstrap.yml(bootstrap.properties)先載入
- application.yml(application.properties)後加載
bootstrap.yml 用於應用程式上下文的引導階段。
bootstrap.yml 由父Spring ApplicationContext載入。
父ApplicationContext 被載入到使用 application.yml 的之前。
2.配置區別
bootstrap.yml 和application.yml 都可以用來配置引數。
- bootstrap.yml 可以理解成系統級別的一些引數配置,這些引數一般是不會變動的。
- application.yml 可以用來定義應用級別的,如果搭配 spring-cloud-config 使用 application.yml 裡面定義的檔案可以實現動態替換。
使用Spring Cloud Config Server時,應在 bootstrap.yml 中指定:
- spring.application.name
- spring.cloud.config.server.git.uri
- 一些加密/解密資訊
例項:
bootstrap.yml
spring:
application:
name: service-a
cloud:
config:
uri: http://127.0.0.1:8888
fail-fast: true
username: user
password: ${CONFIG_SERVER_PASSWORD:password}
retry:
initial-interval: 2000
max -interval: 10000
multiplier: 2
max-attempts: 10
當使用Spring Cloud時,通常從伺服器載入“real”配置資料。為了獲取URL(和其他連線配置,如密碼等),您需要一個較早的或“bootstrap”配置。因此,您將配置伺服器屬性放在bootstrap.yml中,該屬性用於載入實際配置資料(通常覆蓋application.yml [如果存在]中的內容)。
當然,在一些情況上不用那麼區分這兩個檔案,你只需要使用application檔案即可,把全部選項都寫在這裡,效果基本是一致的,在不考慮上面的載入順序覆蓋的問題上。