springboot yml中profiles的巧妙用法(小白必看多環(huán)境配置)
遙想當(dāng)年我還是個(gè)小白的時(shí)候,就只是寫(xiě)寫(xiě)demo,也就在一套環(huán)境上跑跑,真正當(dāng)實(shí)戰(zhàn)的時(shí)候,除了你本地環(huán)境,還有開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境(上線(xiàn))等等。
如果你不知道用這個(gè)profiles,那么這么多套環(huán)境,用一種老古董的寫(xiě)法就是這樣,用哪個(gè)環(huán)境就把其他環(huán)境注釋掉!
spring:
datasource:
username: root #dev
password: 123456 #dev
#username: root2 #test
#password: 456789 #test
...
這還只2個(gè)環(huán)境的數(shù)據(jù)庫(kù)賬號(hào)密碼而已,真正的配置比這要多了去了!
這個(gè)時(shí)候profiles的妙用就體現(xiàn)出來(lái)了!用active指定當(dāng)前使用的環(huán)境
spring:
profiles:
active: local
在下面用 — 來(lái)隔開(kāi)環(huán)境,用profiles來(lái)指定這個(gè)配置環(huán)境名稱(chēng)。
spring:
profiles: local
datasource:
username: root
password: 123456
---
spring:
profiles: dev
username: root2
password: 456789
---
...
當(dāng)然這樣環(huán)境多了,整個(gè)yml也是很亂,所以這個(gè)時(shí)候我們是可以把這些環(huán)境撈出來(lái),放在一個(gè)單獨(dú)的yml中,以 application-{profile}.yml 的格式。
這個(gè){profile}就是你的環(huán)境名!如下

一個(gè)application.yml 放基本的配置,和使用哪個(gè)環(huán)境。
然后下面這些各式各樣的yml就可以用來(lái)存各個(gè)環(huán)境的數(shù)據(jù)庫(kù)配置,服務(wù)注冊(cè)等。

而且會(huì)優(yōu)先使用配置的環(huán)境中的,比如我在local環(huán)境中配置了一個(gè)端口號(hào),輸出的就是local環(huán)境中的端口號(hào)。

當(dāng)我去掉local中配置的端口號(hào),就會(huì)用默認(rèn)配置的端口號(hào)

springboot Failed to load ApplicationContext
如果遇到這個(gè)錯(cuò),可能是配置不對(duì),例如我是把數(shù)據(jù)庫(kù)配置單獨(dú)丟進(jìn)去local了,當(dāng)我使用dev環(huán)境時(shí),里面沒(méi)有數(shù)據(jù)庫(kù)配置,最后的application.yml中也報(bào)錯(cuò)了,程序中有數(shù)據(jù)庫(kù)交互的接口,所有就報(bào)異常了!
要么在dev中補(bǔ)充,要么在application.yml中補(bǔ)充,我個(gè)人建議在dev補(bǔ)充。
因?yàn)檫@樣才能保證各個(gè)環(huán)境不會(huì)有出現(xiàn)問(wèn)題,application.yml只配通用的東西!
其他妙用(用時(shí)補(bǔ)充) 配置logback中也可以用到 配置swagger也可以用到
到此這篇關(guān)于springboot yml中profiles的妙用小白必看多環(huán)境配置的文章就介紹到這了,更多相關(guān)springboot yml使用profiles內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入理解Spring事務(wù)及傳播機(jī)制之原理解析與實(shí)際應(yīng)用
Spring事務(wù)管理機(jī)制提供了多種傳播行為,可以控制事務(wù)的范圍和隔離級(jí)別,保證數(shù)據(jù)一致性和完整性。在實(shí)際應(yīng)用中,需要根據(jù)具體業(yè)務(wù)場(chǎng)景選擇合適的傳播行為實(shí)現(xiàn)事務(wù)控制2023-04-04
淺析如何使用Swagger生成帶權(quán)限控制的API文檔
當(dāng)涉及到權(quán)限控制時(shí),如何生成既安全又詳細(xì)的?API?文檔就成了一個(gè)關(guān)鍵問(wèn)題,所以這篇文章小編就來(lái)和大家好好聊聊如何用?Swagger?來(lái)生成帶有權(quán)限控制的?API?文檔吧2025-02-02
舉例講解Java中Piped管道輸入輸出流的線(xiàn)程通信控制
Java中的PipedWriter、PipedReader類(lèi)管道的讀寫(xiě)依賴(lài)于PipedOutputStream、PipedInputStream兩個(gè)管道輸入輸出類(lèi),這里我們將來(lái)舉例講解Java中Piped管道輸入輸出流的線(xiàn)程通信控制:2016-06-06
JavaWeb Servlet生命周期細(xì)枝末節(jié)處深究
Servlet指在服務(wù)器端執(zhí)行的一段Java代碼,可以接收用戶(hù)的請(qǐng)求和返回給用戶(hù)響應(yīng)結(jié)果,下面這篇文章主要給大家介紹了關(guān)于JavaWeb.servlet生命周期的相關(guān)資料,需要的朋友可以參考下2022-10-10
java實(shí)現(xiàn)任意矩陣Strassen算法
這篇文章主要介紹了java實(shí)現(xiàn)任意矩陣Strassen算法的相關(guān)資料,需要的朋友可以參考下2016-02-02
如何用JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日及調(diào)休日(不報(bào)錯(cuò):IOException!)
最近公司有個(gè)業(yè)務(wù)需要判斷工作日,但是每年的節(jié)假日不一樣,下面這篇文章主要給大家介紹了關(guān)于如何用JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日及調(diào)休日的相關(guān)資料,且不報(bào)錯(cuò):IOException!,需要的朋友可以參考下2023-12-12
SpringBoot中使用Quartz設(shè)置定時(shí)任務(wù)的實(shí)例詳解
Quartz是OpenSymphony開(kāi)源組織在任務(wù)調(diào)度領(lǐng)域的一個(gè)開(kāi)源項(xiàng)目,完全基于 Java 實(shí)現(xiàn),本文小編給大家介紹了SpringBoot中如何使用Quartz設(shè)置定時(shí)任務(wù),文中通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2023-12-12
IDEA如何切換數(shù)據(jù)庫(kù)版本mysql5或mysql8
本文介紹了如何將IntelliJ IDEA從MySQL5切換到MySQL8的詳細(xì)步驟,包括下載MySQL8、安裝、配置、停止舊服務(wù)、啟動(dòng)新服務(wù)以及更改密碼等2025-01-01

