新建的SpringBoot項(xiàng)目下有一個(gè)默認(rèn)的application.properties配置文件,在這里我們可以進(jìn)行一些項(xiàng)目的基礎(chǔ)配置,例如端口號,ssl,數(shù)據(jù)庫地址賬號密碼等等....
例如:

image.png
我們也可以將配置文件改為yml格式,這樣編寫起來更加方便,結(jié)構(gòu)清晰,在application.properties同目錄下,創(chuàng)建application.yml文件,然后刪除application.properties即可,在yml格式下配置實(shí)例如下格式:

image.png
可以看到y(tǒng)ml格式下,配置屬性類似對象一樣,同樣的前綴歸為一類下面(值得注意的是yml下的key和value的值:后面需要有一個(gè)空格)
配置文件里不止有自帶的配置(在末尾會有一些常用配置介紹),我們也可以在這里自定義一些屬性值,供全局使用。
我們首先在yml內(nèi)自定義了一個(gè)person屬性,值為劉德華

image.png
然后在項(xiàng)目代碼里我們可以通過@value注解來進(jìn)行引用

image.png
運(yùn)行項(xiàng)目可發(fā)現(xiàn)已經(jīng)成功:

image.png
多個(gè)自定義屬性值,每個(gè)都使用一次value注解比較麻煩,我們可以把屬性值直接注入一個(gè)對象中來使用首先我們模范其它配置,在yml內(nèi)創(chuàng)建一個(gè)自定義對象:

image.png
接著我們創(chuàng)建一個(gè)實(shí)體類來接收配置數(shù)據(jù):

image.png
然后我們在controller中來使用訪問試試:

image.png
可以看到我們特意注入了兩個(gè)不同的PersonYml,然后一個(gè)接口訪問name,另外一個(gè)接口修改name。
我們首先訪問hello得到名稱為劉德華。然后訪問changeName修改為張學(xué)友之后,重新訪問name,發(fā)現(xiàn)訪問結(jié)果已變?yōu)閺垖W(xué)友,所以配置文件的值是全局共享的。
一般在開發(fā)中,我們開發(fā)環(huán)境與測試環(huán)境的配置經(jīng)常性不同,我們可以利用配置文件來部署兩種不同配置,免得每次切換上線都要挨個(gè)去修改屬性:
首先我們創(chuàng)建兩個(gè)新的yml配置文件,一個(gè)名為application-debug.yml,一個(gè)名為application-release.yml。然后我們修改applicaition.yml:

image.png
通過spring.profiles.active我們設(shè)定當(dāng)前運(yùn)行debug配置。
接著我們在debug和release兩個(gè)yml中進(jìn)行各自的配置編寫即可。當(dāng)需要切換環(huán)境時(shí)只需要修改spring.profiles.active即可。
如果正式上線打包時(shí)active為debug,我們忘記修改為release直接將debug打包了是否需要重新修改配置然后重新打包呢?其實(shí)是不需要的,我們可以在執(zhí)行jar包時(shí)直接手動通過命令行告知我們要使用哪種配置:java -jar -Dspring.profiles.active=release xxx.jar即可