springcloud+springboot框架 動態加載配置文件 bootstrap.yml/properties文件


1、springboot動態指定對應環境的yml文件 

  1.1 SpringBoot在啟動加載配置文件時,如沒有明確指定spring.profiles.active屬性,默認是加載application.yml或application.properties文件。

  還可以使用以下命名約定來定義特定於配置文件的屬性:

  application-sit.yml或application-sit.properties;application-xxx.yml或application-xxx.properties等等

2、spring.profiles.active簡介

  含義:顯式激活指定的配置文件。

 

我們可以通過spring.profiles.active屬性來加載我們指定的 yml文件,從而實現不同的環境加載不同配置yml文件

用springcloud+springboot框架 有兩種解決方案

  第一種:

     通過bootstrap.yml文件指定對應環境的配置文件

  

 

   衍生問題

      1、每次上線都要將對應環境的spring.profiles.active改回來,如果有一次改動不回來會導致上線的環境不是生產環境,還需要重新改動bootstrap.yml 中spring.profiles.active 值

      解決方案:參考第二種

  第二種:通過java -jar 命令指定對應的配置文件;同樣可以達到spring.profiles.active的效果

    

      java -jar xxxxxx.jar --spring.profiles.active=sit

   

   衍生問題

      1、一般我們開發環境使用工具idea、Eclipse啟動的時候需要配置指定的配置文件才能啟動。 可不可以本地開發環境啟動的環境加載默認的或者指定的配置文件

    嘗試解決中。。。。。。

    可不可以第一種和第二種方案中和一下是不是就解決了 

    

    這樣配置本地調式是沒有問題,但是當放到liunx服務器中用命令指定配置文件啟動發現他還是默認使用bootstrap.yml配置

    

   

  將bootstrap.yml改為application.yml可以了解決了

 

 

 

 

    補充知識:SpringBoot不讀取bootstrap.yml/properties文件

    bootstrap.yml配置是SpringCloud項目才會用到的。

    如果你的項目僅僅是一個SpringBoot項目,只會識別application.yml配置文件。

    由於SpringCloud是基於SpringBoot構建的,所有SpringCloud項目兩種文件都會識別,這個時候才有優先級的說法,SpringCloud項目是會優先讀取bootstrap配置在讀取application配置。

    SpringBoot 項目中如果沒有依賴 spring-cloud-context 的話,是不會讀取bootstrap.properties 文件

    bootstrap.yml配置是SpringCloud項目才會用到的。

    如果你的項目僅僅是一個SpringBoot項目,只會識別application.yml配置文件。

    如果SpringBoot項目想用到bootstrap.yml配置 加入依賴spring-cloud-context 就可以了

    

    

    

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM