溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBoot中application配置文件使用方法

發(fā)布時間:2020-05-23 16:23:34 來源:億速云 閱讀:390 作者:鴿子 欄目:軟件技術(shù)

現(xiàn)在我們已經(jīng)知道,我們可以通過在運行jar時提供一系列的參數(shù)來定制SpingBoot為我們默認做好的設(shè)置。如果我們要定制的屬性很多,在實際開發(fā)中,你可能會需要覆蓋上百個SpringBoot的默認設(shè)置,如果這些設(shè)置寫在java -jar 運行命令中一點都不優(yōu)雅,也不利于維護。那如何是好?

SpringBoot提供了專門的屬性配置文件和配置接口。

SpringBoot默認加載的屬性配置文件名稱為application,就像你用Spring框架一樣,也有一個全局的配置文件。

你可以在resource目錄下創(chuàng)建application.properties,把需要定制的SpringBoot屬性寫入其中,
比如你要修改SpringBoot啟動的默認端口,就加入server.port屬性;要修改redis的默認端口,可以加入spring.redis屬性;要修改rabbitmq的連接地址,可以加入spring.rabbitmq.host屬性,就像這樣:
SpringBoot中application配置文件使用方法

重啟項目后,就看到默認端口已經(jīng)修改為8081。這跟使用啟動命令java -jar運行道理是一樣的,只不過看起來更利于維護。如果你覺得就這么幾個參數(shù),直接寫在啟動命令中豈不更省事?實際項目中需要進行設(shè)置的內(nèi)容往往很多,甚至還要復(fù)雜。

因此,自己定義application.properties來管理框架定制屬性的意義就很重要了。

而且,application.properties的作用遠不止于此。

他還能方便區(qū)分和管理不同環(huán)境的配置。開發(fā)人員經(jīng)常要在本地環(huán)境、測試環(huán)境甚至生產(chǎn)環(huán)境中切換,以便更好的開發(fā)或排查問題。在以前,我們可能是通過在application.properties中注釋掉一部分并寫上另一部分內(nèi)容的方式來切換不同環(huán)境。然而,現(xiàn)在有更優(yōu)雅的方式。

可以通過再application后添加不同的后綴名稱來區(qū)分不同項目環(huán)境,不用全部雜糅在一個配置文件中。比如這樣:
SpringBoot中application配置文件使用方法

一般約定,dev代表開發(fā)環(huán)境,test代表測試環(huán)境, prod代表生產(chǎn)環(huán)境。通過不同的后綴名稱,不同環(huán)境配置一目了然。

最后在根配置文件,也就是application.properties中添加 spring.profiles.active=dev來指定啟用哪個配置,比如這里的dev就對應(yīng)application-dev.properties,也就是我們約定的開發(fā)環(huán)境配置。

那如果application.properties中和application-dev.properties都有相同的配置屬性,結(jié)果如何呢?

答案是,spring.profiles.active對應(yīng)了哪個就是哪個生效,除非那個配置文件中沒有定義的屬性,才會被application.properties中定義的覆蓋,如果兩個文件中都沒有,則沿用springboot默認設(shè)置。

另外,附帶提一下,springboot配置文件還有一種yaml格式,比如上述的application.properties可以命名為application.yml,作用完全相同,只不過yaml文件是用樹形結(jié)構(gòu)來編寫屬性,就像這樣:

SpringBoot中application配置文件使用方法

而當(dāng)項目中同時存在application.properties和application.yml時,起作用的是application.properties。 同一目錄下,properties配置優(yōu)先級 高于 YAML配置優(yōu)先級。

使用建議

1、盡量統(tǒng)一使用一種格式的配置文件,盡量不要兩種格式混用。

2、properties雖然傳統(tǒng)而且好用,但官方更推薦用yaml格式,因為樹形結(jié)構(gòu)可讀性更強,這也是很多編程語言的趨勢。3、一般情況下,我們都會放在resource根目錄下,也可以放在resource/config目錄下,這種情況下,優(yōu)先級最高的是resource/config中的配置文件,這也是官方推薦的方式。因此,建議大家將springboot本身的配置文件放在resource/config目錄下。

最后,附上完整的配置參數(shù)清單,需要修改默認的哪些設(shè)置,對照這個清單上找到,然后application文件中覆蓋默認屬性接口。springboot的這些屬性很多是要另外在pom中添加相關(guān)的starter才能使用這些功能和參數(shù)定制。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI