Bootstrap.yml的作用

      網友投稿 1113 2025-04-01

      bootstrap.yml的作用

      加載順序

      若application.yml 和bootstrap.yml 在同一目錄下:bootstrap.yml 先加載 application.yml后加載

      bootstrap.yml 用于應用程序上下文的引導階段。bootstrap.yml 由父Spring ApplicationContext加載。

      配置區別

      Bootstrap.yml的作用

      bootstrap是spring cloud的配置上下文加載。由spring-cloud-content包加載。

      引入依賴

      org.springframework.cloud spring-cloud-starter

      application是spring boot的配置加載。

      引入依賴

      org.springframework.boot spring-boot-starter-web

      具體加載類

      部分代碼

      @Override public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) { ConfigurableEnvironment environment = event.getEnvironment(); //# spring.cloud.bootstrap.enabled 引導開關 if (!environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class, true)) { return; } // don't listen to events in a bootstrap context if (environment.getPropertySources().contains(BOOTSTRAP_PROPERTY_SOURCE_NAME)) { return; } ConfigurableApplicationContext context = null; // 引導文件名稱 默認bootstrap String configName = environment .resolvePlaceholders("${spring.cloud.bootstrap.name:bootstrap}"); // 加載配置 for (ApplicationContextInitializer initializer : event.getSpringApplication() .getInitializers()) { // 從ParentContent加載 if (initializer instanceof ParentContextApplicationContextInitializer) { context = findBootstrapContext( (ParentContextApplicationContextInitializer) initializer, configName); } } if (context == null) { context = bootstrapServiceContext(environment, event.getSpringApplication(), configName); event.getSpringApplication() .addListeners(new CloseContextOnFailureApplicationListener(context)); } apply(context, event.getSpringApplication(), environment); }

      bootstrap.yml 和 application.yml 都可以用來配置參數。

      bootstrap.yml 用來程序引導時執行,應用于更加早期配置信息讀取。可以理解成系統級別的一些參數配置,這些參數一般是不會變動的。一旦bootStrap.yml 被加載,則內容不會被覆蓋。

      application.yml 可以用來定義應用級別的, 應用程序特有配置信息,可以用來配置后續各個模塊中需使用的公共參數等。

      屬性覆蓋問題

      啟動上下文時,Spring Cloud 會創建一個 Bootstrap Context,作為 Spring 應用的 Application Context 的父上下文。

      初始化的時候,Bootstrap Context 負責從外部源加載配置屬性并解析配置。這兩個上下文共享一個從外部獲取的 Environment。Bootstrap 屬性有高優先級,默認情況下,它們不會被本地配置覆蓋。

      也就是說如果加載的 application.yml 的內容標簽與 bootstrap 的標簽一致,application 也不會覆蓋 bootstrap,而 application.yml 里面的內容可以動態替換。

      bootstrap.yml典型的應用場景

      微服務的 注冊中心、配置中心、項目名稱spring.application.name

      以nacos為例

      spring: application: name: paw-alibaba-nacos # profile profiles: active: dev # nacos cloud: nacos: discovery: server-addr: http://localhost:8848 username: nacos password: 123456 config: server-addr: http://localhost:8848 username: nacos password: 123456 context-path: nacos file-extension: yaml prefix: ${spring.application.name}

      Bootstrap Spring

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:《KVM實戰原理、進階與性能調優》一前言+目錄
      下一篇:wps怎么繪制一周課程表?
      相關文章
      亚洲中文字幕日产乱码高清app| 久久久久亚洲AV无码去区首| 久久久久亚洲精品无码网址 | 久久无码av亚洲精品色午夜| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲中文字幕无码一去台湾| 77777午夜亚洲| 亚洲综合色丁香婷婷六月图片| 亚洲一区二区三区91| 91亚洲国产成人久久精品网址| 亚洲精品视频久久| 亚洲国产成a人v在线| 中文字幕 亚洲 有码 在线| 亚洲冬月枫中文字幕在线看| 亚洲一区二区三区国产精品无码| 亚洲不卡在线观看| 亚洲精品二三区伊人久久| 亚洲人成欧美中文字幕| 国产亚洲一卡2卡3卡4卡新区 | 久久丫精品国产亚洲av不卡 | 久久影院亚洲一区| 亚洲午夜久久久久久噜噜噜| 国产亚洲一区二区三区在线| 亚洲AV无码专区国产乱码4SE| 亚洲国产精品久久久久婷婷软件| 91天堂素人精品系列全集亚洲| 亚洲精品国产福利在线观看| 精品亚洲AV无码一区二区| 亚洲人成网站在线播放2019| 色窝窝亚洲av网| 国产精品亚洲二区在线观看 | 亚洲日韩一区精品射精| 国产精品亚洲专区无码牛牛 | 国产精品亚洲精品观看不卡| 中国亚洲呦女专区| 丁香亚洲综合五月天婷婷| 中文字幕久久亚洲一区 | 日韩亚洲AV无码一区二区不卡| 亚洲春黄在线观看| 亚洲午夜成人精品无码色欲| 成人亚洲网站www在线观看|