国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SpringBoot 配置文件加載和參數(shù)覆蓋

SpringBoot 或者SpringCloud 有配置文件加載和參數(shù)修改的機(jī)制,本文將從兩個(gè)角度闡述參數(shù)修改和配置文件啟動(dòng)覆蓋問題。

1、SpringBoot 配置文件加載

以下幾種方式都可以被@Value讀取到

  1. java -jar -Dserver.port=8080 -Xms1024m demo.jar
  2. java -jar demo.jar --server.port=8080
  3. 從操作系統(tǒng)的環(huán)境變量中讀取
  4. 通過項(xiàng)目中配置文件bootstrap/application文件載入

1.1、修改application.properties的參數(shù)幾種方式

  1. 方法一:直接在cmd中執(zhí)行
  2. 方法二:系統(tǒng)變量配置
  3. 方法三:程序運(yùn)行配置
  4. 方法四:外部加載

1.2、方法一:直接CMD

java -jar xxx.jar --server.port:8082
如果要修改多個(gè)參數(shù),空格后繼續(xù)寫就可以了。再例如:java -jar xxx.jar --server.port:8082 --test.name=xxx

1.3、方法二:系統(tǒng)變量配置

SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題
SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題

1.4、方法三:程序運(yùn)行配置

SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題
SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題

1.5、方法四:外部加載

springboot 有讀取外部配置文件的方法,如下優(yōu)先級(jí):

第一種是在jar包的同一目錄下建一個(gè)config文件夾,然后把配置文件放到這個(gè)文件夾下。
第二種是直接把配置文件放到j(luò)ar包的同級(jí)目錄。
第三種在classpath下建一個(gè)config文件夾,然后把配置文件放進(jìn)去。
第四種是在classpath下直接放配置文件。

我們通常在src/main/resources 文件夾下創(chuàng)建的application.properties 文件的優(yōu)先級(jí)是最低的!

1)內(nèi)外都有配置文件,配置文件讀取是有優(yōu)先級(jí),外配置文件優(yōu)于內(nèi)配置文件讀取。
2)如果內(nèi)配置文件里有外配置文件沒有的配置,那兩者互補(bǔ)。比如外配置文件沒有配置數(shù)據(jù)庫(kù),內(nèi)配置文件里配置了數(shù)據(jù)庫(kù),那內(nèi)配置文件的配置會(huì)被使用。
3)如果內(nèi)配置文件里和外配置文件里都有相同的配置,比如兩者都配置了數(shù)據(jù)庫(kù),但是兩個(gè)連接的不同,那外配置文件會(huì)覆蓋內(nèi)配置文件里的配置。

2、SpringBoot 啟動(dòng)參數(shù)覆蓋

2.1、不指定profile的加載順序

首先,在默認(rèn)的情況下也就是不存在活動(dòng)的profile(即不指定spring.profiles.active=?)時(shí),四種文件的加載優(yōu)先級(jí)依次為bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml。
總結(jié):bootstrap的配置先于application的配置加載,同時(shí).properties的加載又先于.yml的加載,即加載優(yōu)先級(jí)bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml。


需要注意的是

  1. 當(dāng)同一個(gè)配置屬性在bootstrap.properties和bootstrap.yml文件中都存在時(shí),那么properties中的配置會(huì)被加載,而忽略yml文件中的配置(即優(yōu)先級(jí)高的配置覆蓋優(yōu)先級(jí)低的配置),不同配置相互互補(bǔ)。此處application(.properties/yml)同理。
  2. 但當(dāng)同一配置在bootstrap.properties和application.properties中都存在時(shí),那么雖然優(yōu)先加載bootstrap.properties但是會(huì)被applicatioin.properties中的配置覆蓋,此時(shí)則變成了低優(yōu)先級(jí)覆蓋高優(yōu)先的配置,所以網(wǎng)上很多文章所說的高優(yōu)先級(jí)覆蓋低優(yōu)先級(jí)其實(shí)是不嚴(yán)謹(jǐn)?shù)摹?/li>
  3. 不同的配置會(huì)進(jìn)行互補(bǔ)操作,即SpringBoot會(huì)讀取全部的配置文件,加載所有不同的配置項(xiàng),匯成一個(gè)總的配置。

2.2、指定profile的加載順序

例如在指定了spring.profiles.active=dev/test/prod此類時(shí),即指定profile時(shí),加載優(yōu)先級(jí)便會(huì)發(fā)生變化此時(shí)活動(dòng)的優(yōu)先級(jí)最高。

當(dāng)指定dev時(shí):
此時(shí)的加載優(yōu)先級(jí)變?yōu)榱薭ootstrap-dev.yml -> bootstrap.properties -> application-dev.yml ->application.properties。且同屬性配置的覆蓋問題和之前一樣,在同為bootstrap或同為application的情況下,優(yōu)先級(jí)高的覆蓋優(yōu)先級(jí)低的。但當(dāng)同時(shí)存在bootstrap和application時(shí)后者仍會(huì)覆蓋前者中的配置。
**舉例1:**假如此時(shí)只有bootstrap-dev.yml 和bootstrap.properties且存在相同配置,則使用bootstrap-dev.yml中的配置,此時(shí)遵循高優(yōu)先級(jí)覆蓋低優(yōu)先級(jí)。
**舉例2:**假如此時(shí)有bootstrap-dev.yml 、bootstrap.properties及application.properties且存在相同配置,則使用application.properties中的配置,遵循application覆蓋bootstrap原則,同樣此時(shí)變成了低優(yōu)先級(jí)覆蓋高優(yōu)先級(jí)。

3、使用外部配置

如項(xiàng)目使用nacos做配置中心,則存在相同配置時(shí)以nacos中配置為主(在沒有開啟本地覆蓋nacos遠(yuǎn)程配置的情況下),nacos中的配置將會(huì)覆蓋一切本地相同的配置,不同配置可以和本地進(jìn)行互補(bǔ)。

3.1、擴(kuò)展nacos開啟本地覆蓋遠(yuǎn)程配置

如果需要啟動(dòng)參數(shù)或者本地配置覆蓋遠(yuǎn)程配置,那么需要在遠(yuǎn)程配置里配置上允許重寫:
spring.cloud.config.allowOverride=true
但這是不夠的,盡管它開啟了總開關(guān),但是還有兩個(gè)默認(rèn)的小開關(guān)卡住了。
應(yīng)同時(shí)添加如下配置:
spring.cloud.config.overrideNone=true
spring.cloud.config.overrideSystemProperties=false

第一個(gè)開關(guān)是遠(yuǎn)端不覆蓋本地?true 是的不覆蓋。
第二個(gè)開關(guān)是遠(yuǎn)端是否覆蓋系統(tǒng)配置?false 不覆蓋。 (默認(rèn)為true 覆蓋)
請(qǐng)注意,第一個(gè)小開關(guān)包括第二個(gè)。
overrideNone = true的話會(huì)開啟所有包括本地配置和系統(tǒng)配置并忽略掉overrideSystemProperties配置。
如果只想開啟overrideSystemProperties,那么就是overrideNone = false,overrideSystemProperties=false。文章來源地址http://www.zghlxwxcb.cn/news/detail-413888.html

外部參考

  1. springBoot項(xiàng)目配置文件加載優(yōu)先級(jí)及同配置覆蓋問題
  2. springboot 啟動(dòng)修改application.properties中的參數(shù)的方法

到了這里,關(guān)于SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Springboot啟動(dòng)過程入口和加載配置

    Springboot自動(dòng)自動(dòng)配置啟動(dòng)過程加載的核心類以及一些主要的方法,Spring中使用需要很多自己手動(dòng)配置,而Boot提供很多默認(rèn)的配置。

    2024年02月08日
    瀏覽(20)
  • SpringBoot命令行啟動(dòng)時(shí)參數(shù)配置

    一、配置方式 1. 參數(shù)配置 通過命令行參數(shù)來配置Spring Boot應(yīng)用程序是一種常見的方式。在命令行中,可以使用 --property=value 的形式來傳遞參數(shù)。這些參數(shù)會(huì)被Spring Boot解析并應(yīng)用到應(yīng)用程序的配置中。例如,可以使用以下命令啟動(dòng)Spring Boot應(yīng)用程序: 2. 配置文件配置 Spring B

    2024年02月08日
    瀏覽(27)
  • Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)

    Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)

    Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí) 大家好,我是洲洲,歡迎關(guān)注,一個(gè)愛聽周杰倫的程序員。關(guān)注公眾號(hào)【程序員洲洲】即可獲得10G學(xué)習(xí)資料、面試筆記、大廠獨(dú)家學(xué)習(xí)體系路線等…還可以加入技術(shù)交流群 歡迎大家在CSDN后臺(tái)私信我! 首先我們介紹一下Nginx是什

    2024年02月12日
    瀏覽(24)
  • VS010問題匯總(未能正確加載包)( 運(yùn)行時(shí)提示無(wú)法啟動(dòng)程序 系統(tǒng)找不到指定的文件問題)(不能自動(dòng)生成)(vs2010缺少或未指定語(yǔ)言特性)(沒有為此解決方案配置選中要生成的項(xiàng)目)

    VS010問題匯總(未能正確加載包)( 運(yùn)行時(shí)提示無(wú)法啟動(dòng)程序 系統(tǒng)找不到指定的文件問題)(不能自動(dòng)生成)(vs2010缺少或未指定語(yǔ)言特性)(沒有為此解決方案配置選中要生成的項(xiàng)目)

    解決方法:http://t.csdn.cn/BKFoY(參考解決方法) ?我的這個(gè)問題是參考這個(gè)回答中的第二個(gè)方法解決的,真的很靠譜,博主昨天被這個(gè)問題,重裝了VS2010很多次,結(jié)果無(wú)法解決,是看了文中的方法才得以解決的 解決方法:我的解決方法:是沒有生成解決方案,所以需要自己先

    2024年02月04日
    瀏覽(37)
  • Intellij IDEA配置springBoot熱加載,使代碼修改后無(wú)須重啟服務(wù)立即生效

    Intellij IDEA配置springBoot熱加載,使代碼修改后無(wú)須重啟服務(wù)立即生效

    1.Intellij IDEA左上角——文件—— settings——搜索debug,然后按下圖設(shè)置好后點(diǎn)擊ok 2.修改springboot服務(wù)器配置,使得更新springboot應(yīng)用程序或IDEA窗口失去焦點(diǎn)時(shí),更新類和資源 3.IDEA開啟項(xiàng)目自動(dòng)編譯 Intellij IDEA左上角——文件—— settings——搜索compiler,然后按下圖設(shè)置號(hào)后點(diǎn)擊

    2024年02月08日
    瀏覽(20)
  • 邁德威視MindVision相機(jī)配置文件的保存與加載/相機(jī)參數(shù)移植

    邁德威視MindVision相機(jī)配置文件的保存與加載/相機(jī)參數(shù)移植

    我們會(huì)遇到這樣的情況,在一臺(tái)電腦上(如我們自己的筆記本)安裝了MindVision相機(jī)的驅(qū)動(dòng)軟件,想要使用MindVision相機(jī)成像。在我們搭建的成像環(huán)境下,假設(shè)想要對(duì)螺栓進(jìn)行成像,我們可能調(diào)試出了一套合適的相機(jī)參數(shù),包括曝光、增益等,然后在此基礎(chǔ)上采集圖像、進(jìn)行后續(xù)

    2024年02月15日
    瀏覽(82)
  • SpringBoot配置文件的加載順序

    SpringBoot配置文件的加載順序

    一、引言 如果我們了解SpringBoot配置文件的加載順序,對(duì)項(xiàng)目的開發(fā)和部署會(huì)有很大的幫助。舉個(gè)工作中的例子,我們的項(xiàng)目是微服務(wù)架構(gòu)模式,用Nacos做注冊(cè)中心(可以配置每個(gè)微服務(wù)),所有服務(wù)請(qǐng)求需要通過網(wǎng)關(guān),由網(wǎng)關(guān)做統(tǒng)一的鑒權(quán)和路由轉(zhuǎn)發(fā)。環(huán)境有三套,本地環(huán)境

    2024年02月02日
    瀏覽(25)
  • Springboot 實(shí)踐(2)MyEclipse2019創(chuàng)建項(xiàng)目修改pom文件,加載springboot 及swagger-ui jar包

    Springboot 實(shí)踐(2)MyEclipse2019創(chuàng)建項(xiàng)目修改pom文件,加載springboot 及swagger-ui jar包

    MyEclipse2019創(chuàng)建工程之后,需要添加Springboot啟動(dòng)函數(shù)、添加application.yml配置文件、修改pom文件添加項(xiàng)目使用的jar包。 添加Springboot啟動(dòng)函數(shù) 創(chuàng)建文件存儲(chǔ)路徑 (1)右鍵單擊“src/main/java”文件夾,彈出對(duì)話框輸入路徑名稱“com.SJL.action.app”,點(diǎn)擊“finish”按鈕,完成路徑創(chuàng)建。

    2024年02月12日
    瀏覽(18)
  • SpringBoot 配置文件加載優(yōu)先級(jí)

    SpringBoot 配置文件加載優(yōu)先級(jí)

    最近在使用k8s部署項(xiàng)目的時(shí)候,發(fā)現(xiàn)Dockerfile文件中的命令后面跟的參數(shù),無(wú)法覆蓋nacos中的參數(shù),今天有時(shí)間正好來整理一下Springboot配置的加載順序 整理加載順序第一個(gè)肯定看官方文檔:https://docs.spring.io/spring-boot/docs/2.2.9.RELEASE/reference/htmlsingle/#boot-features-external-config 看不懂我們直

    2024年02月02日
    瀏覽(25)
  • 10SpringBoot 靜態(tài)資源訪問
                    
            
11Springboot的默認(rèn)配置文件和外部配置文件及加載順序

    10SpringBoot 靜態(tài)資源訪問 11Springboot的默認(rèn)配置文件和外部配置文件及加載順序

    ? ? ?? ?做web開發(fā)的時(shí)候,我們往往會(huì)有很多靜態(tài)資源,如html、圖片、css等。那如何向前端返回靜態(tài)資源呢? ? ? ? ?以前做過web開發(fā)的同學(xué)應(yīng)該知道,我們以前創(chuàng)建的web工程下面會(huì)有一個(gè)webapp的目錄,我們只要把靜態(tài)資源放在該目錄下就可以直接訪問。 ? ? ? ?但是,基

    2023年04月08日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包