亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • .properties
  • .yml
  • .yaml

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

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

五、配置文件高級用法

假設(shè)有以下配置文件:

類路徑根目錄下application.yml內(nèi)容:

pack:
  name: root-name
  age: 11

類路徑config包下application.yml內(nèi)容:

pack:
  name: classpath/config-name

讀取配置pack.namepack.age,輸出結(jié)果為:

name = classpath/config-name, age = 11

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

5.1 修改配置文件名

使用spring.config.name環(huán)境屬性可以修改默認(rè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 附加配置文件

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

使用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 可選位置

默認(rèn)當(dāng)指定的配置數(shù)據(jù)文件不存在時,SpringBoot會拋出ConfigDataLocationNotFoundException異常,應(yīng)用程序?qū)o法啟動.

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

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

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

六、多配置文件處理方式

背景需求

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

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

解決方法二

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

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

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

相關(guān)文章

  • Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作實現(xiàn)代碼

    Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作實現(xiàn)代碼

    這篇文章主要介紹了Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作的相關(guān)資料,并附實例代碼,需要的朋友可以參考下
    2016-10-10
  • kafka安裝部署超詳細(xì)步驟

    kafka安裝部署超詳細(xì)步驟

    這篇文章主要介紹了kafka安裝部署的詳細(xì)步驟,主要應(yīng)用場景是:日志收集系統(tǒng)和消息系統(tǒng),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Aspectj與Spring AOP的對比分析

    Aspectj與Spring AOP的對比分析

    這篇文章主要介紹了Aspectj與Spring AOP的對比分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • springboot整合Nginx實現(xiàn)負(fù)載均衡反向代理的方法詳解

    springboot整合Nginx實現(xiàn)負(fù)載均衡反向代理的方法詳解

    這篇文章主要給大家介紹了關(guān)于springboot整合Nginx實現(xiàn)負(fù)載均衡反向代理的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • SpringBoot如何進(jìn)行參數(shù)校驗實例詳解

    SpringBoot如何進(jìn)行參數(shù)校驗實例詳解

    開發(fā)過程中,后臺的參數(shù)校驗是必不可少的,下面這篇文章主要給大家介紹了關(guān)于SpringBoot如何進(jìn)行參數(shù)校驗的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法

    SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法

    這篇文章主要給大家介紹了關(guān)于SpringBoot?@DS注解實現(xiàn)多數(shù)據(jù)源配置以及問題解決辦法,所謂多數(shù)據(jù)源就是一個Java EE項目中采用了不同數(shù)據(jù)庫實例中的多個庫,或者是同一個數(shù)據(jù)庫實例中的多個不同庫,需要的朋友可以參考下
    2023-11-11
  • Java泛型類型擦除

    Java泛型類型擦除

    這篇文章主要為大家詳細(xì)介紹了Java泛型類型擦除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • java實現(xiàn)合并圖片的方法示例

    java實現(xiàn)合并圖片的方法示例

    這篇文章主要介紹了java實現(xiàn)合并圖片的方法,結(jié)合具體實例形式分析了java基于圖片的讀取、設(shè)置、生成等操作實現(xiàn)圖片合并功能的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • 如何用java對接微信小程序下單后的發(fā)貨接口

    如何用java對接微信小程序下單后的發(fā)貨接口

    這篇文章主要介紹了在微信小程序后臺實現(xiàn)發(fā)貨通知的步驟,包括獲取Access_token、使用RestTemplate調(diào)用發(fā)貨接口、處理AccessToken緩存以及發(fā)貨成功后的提醒,需要的朋友可以參考下
    2025-03-03
  • SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法

    SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法

    優(yōu)化Spring Boot,Spring Cloud 應(yīng)用程序中Tomcat的配置有助于提高性能和資源利用率,這篇文章主要介紹了SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法,需要的朋友可以參考下
    2024-08-08

最新評論