最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot配置文件高級用法實戰(zhàn)分享

 更新時間:2024年08月05日 09:08:14   作者:碼到三十五  
Spring Boot配置文件的優(yōu)先級是一個重要的概念,它決定了當存在多個配置文件時,哪個配置文件中的配置將被優(yōu)先采用,本文給大家介紹了SpringBoot配置文件高級用法實戰(zhàn),文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、總體優(yōu)先級順序

  1. 命令行參數:通過命令行啟動參數指定的配置擁有最高優(yōu)先級。這包括java -jar命令后跟隨的配置參數。

  2. 來自SPRING_APPLICATION_JSON的屬性:嵌入在環(huán)境變量或系統(tǒng)屬性中的JSON格式配置信息,優(yōu)先級僅次于命令行參數。

  3. 系統(tǒng)屬性:通過Java系統(tǒng)屬性傳遞的配置值,例如使用-D參數設置的值。

  4. 環(huán)境變量:操作系統(tǒng)環(huán)境變量中的配置值。

  5. 隨機生成的屬性(僅用于開發(fā)中的隨機端口號等):Spring Boot在開發(fā)環(huán)境中可以隨機生成一些屬性,例如隨機端口號。

  6. 應用配置文件(application.propertiesapplication.yml:按照特定順序加載的配置文件。

  7. @Configuration類中通過@PropertySource注解定義的屬性:通過編程方式指定的配置文件。

  8. 默認屬性(通過SpringApplication.setDefaultProperties指定的默認屬性):這些屬性在所有其他特定屬性源之后加載,因此優(yōu)先級最低。

二、應用配置文件的詳細優(yōu)先級

對于application.propertiesapplication.yml等應用配置文件,Spring Boot按照以下順序加載,優(yōu)先級從高到低:

  1. 命令行中指定的配置文件:通過--spring.config.location參數指定的配置文件。

  2. 項目目錄下的config子目錄:位于項目根目錄下的config(和jar包同一目錄)文件夾中的配置文件。

  3. 項目根目錄:項目根目錄(和jar包同一目錄)下的配置文件。

  4. 類路徑下的configsrc/main/resources/config目錄中的配置文件。

  5. 類路徑根目錄src/main/resources目錄中的配置文件。

特別注意的是,配置文件內容是在的合并的前提下執(zhí)行優(yōu)先級,即不重復的配置內容會合并!

三、文件類型優(yōu)先級

在同一位置下,如果存在多種類型的配置文件(如.properties.yml、.yaml),它們的優(yōu)先級順序為:

  • .properties
  • .yml
  • .yaml

四、特定環(huán)境配置

當使用特定環(huán)境的配置文件(如application-dev.ymlapplication-prod.yml)時,激活的特定環(huán)境配置文件將覆蓋通用配置文件中的相同屬性。如果指定了多個特定環(huán)境配置文件,則后面的配置文件將覆蓋前面的配置文件中的相同屬性。

五、配置文件高級用法

假設有以下配置文件:

類路徑根目錄下application.yml內容:

pack:
  name: root-name
  age: 11

類路徑config包下application.yml內容:

pack:
  name: classpath/config-name

讀取配置pack.namepack.age,輸出結果為:

name = classpath/config-name, age = 11

這驗證了配置文件內容的合并以及優(yōu)先級規(guī)則。

5.1 修改配置文件名

使用spring.config.name環(huán)境屬性可以修改默認的配置文件名:

java -jar springboot-configfile-1.0.0.jar --spring.config.name=pack

5.2 修改配置文件位置

使用spring.config.location環(huán)境屬性指定配置文件的位置:

java -jar springboot-configfile-1.0.0.jar --spring.config.location=optional:classpath:/pack.yml,optional:classpath:/config/pack1.yml

使用optional:前綴可以忽略文件不存在的錯誤。也可以指定目錄讓Spring Boot自動拼接文件名:

java -jar springboot-configfile-1.0.0.jar --spring.config.location=optional:classpath:/config/ --spring.config.name=pack

5.3 使用文件系統(tǒng)路徑

指定文件系統(tǒng)中的配置文件路徑:

java -jar springboot-configfile-1.0.0.jar --spring.config.location=optional:classpath:/pack.yml,optional:file:f:/
--spring.config.name=pack

5.4 附加配置文件

如需要添加其它的配置文件,并非是替換默認的配置文件,可從附加位置加載屬性(可以覆蓋默認位置中的屬性值)。

使用spring.config.additional-location加載額外的配置文件:

java -jar springboot-configfile-1.0.0.jar --spring.config.location=optional:classpath:/pack.yml --spring.config.name=pack --spring.config.additional-location=optional:file:f:/pack-akf.yml

5.5 可選位置

默認當指定的配置數據文件不存在時,SpringBoot會拋出ConfigDataLocationNotFoundException異常,應用程序將無法啟動.

使用optional:前綴忽略配置文件不存在的錯誤:

java -jar springboot-configfile-1.0.0.jar --spring.config.location=optional:classpath:/pack.yml --spring.config.on-not-found=ignore

忽略所有ConfigDataLocationNotFoundException并始終繼續(xù)啟動應用程序,可以使用spring.config.on-not-found屬性

六、多配置文件處理方式

背景需求

程序在部署的時候,一般是將配置文件放在jar包的外面,而當存在多個文件需要加載時,如項目中有:

cfg1.properties
cfg2.properties

解決方法一

合并所有配置文件至一個文件中配置加載,然后使用spring.config.location配置加載。
把cfg1.properties和cfg2.properties中的配置都合并至cfg.properties中。

java -jar app.jar --spring.config.location=file:/path/to/cfg.properties

解決方法二

保持文件的各自獨立,使用spring.config.location屬性來指定應用程序的配置文件路徑??梢灾付ǘ鄠€配置文件,使用逗號分隔的文件路徑,例如:

java -jar api.jar --spring.config.location=file:/path/cfg1.properties,file:/path/cfg2.properties

到此這篇關于SpringBoot配置文件高級用法實戰(zhàn)分享的文章就介紹到這了,更多相關SpringBoot配置文件用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

台州市| 苗栗市| 新巴尔虎右旗| 石阡县| 斗六市| 双城市| 太仆寺旗| 安龙县| 沧州市| 韶关市| 剑阁县| 乐山市| 定结县| 会东县| 修武县| 长海县| 乾安县| 鄱阳县| 恩平市| 宣威市| 林州市| 达孜县| 民权县| 七台河市| 深水埗区| 东丽区| 化德县| 射洪县| 杭锦旗| 琼结县| 惠水县| 防城港市| 大新县| 尖扎县| 吴江市| 安平县| 山东省| 图片| 望都县| 南澳县| 泗阳县|