一、概述
在開發過程中,我們的項目會存在不同的開發環境,比如開發環境、生產環境、測試環境,而我們的項目在不同的環境中有些配置也是不一樣的,比如數據源配置、日志文件配置等,假如我們每次將軟件部署到不同的環境時,都需要對相應的配置文件進行修改,來來回回修改,很容易出現少改的地方,而且浪費我們的勞動力。項目用的maven的profile來區別不同的環境配置,我也正好來學習一下。
本文如有不當,歡迎指正,希望大家留言討論問題。
二、數據准備
數據准備:准備3個數據庫、數據庫名為test_db、表名都為student,只是數據不同。
(1)192.168.229.134
(2)192.168.229.133
(3)192.168.229.132
三、應用演示
在本次演示中,使用IDEA結合maven的profile來實現對數據庫的切換以及應用端口的切換。工程結構如圖:
(1)父pom文件的profile配置
<!--配置不同的profile,對應不同的生產環境--> <profiles> <profile> <!--開發--> <id>dev</id> <activation> <!--默認開發環境--> <activeByDefault>true</activeByDefault> </activation> <properties> <activatedProperties>dev</activatedProperties> </properties> </profile> <profile> <!--生產--> <id>pro</id> <properties> <activatedProperties>pro</activatedProperties> </properties> </profile> <profile> <!--生產--> <id>test</id> <properties> <activatedProperties>test</activatedProperties> </properties> </profile> </profiles>
(2)application.properties的配置
spring.profiles.active=@activatedProperties@ //這里名稱與profile中的標簽名一致
(3)application-xxx.properties的配置(3個基本一致,數據庫地址和應用上下文根不同)
(4)測試
①默認情況:父pom中已指定默認情況為開發環境,連接192.168.229.132數據,學生名應該為王五,上下文根為/dev-app,啟動springboot測試如下:
打開瀏覽器訪問:localhost/dev-app/all?base=1
②指定測試環境,編輯啟動配置添加:-Dspring.profiles.active=test
啟動程序,查看控制台日志如下:
打開瀏覽器訪問:http://localhost/test-app/all?base=1,連接192.168.229.134數據,學生名應該為張三
③指定生產環境:-Dspring.profiles.active=test,控制日志如下:
瀏覽器訪問:http://localhost/pro-app/all?base=1
四、總結
在使用期間,遇到了很多問題,比如如下異常,折騰好幾個小時,百度了很久也不知道哪里問題,都怪自己學識太淺,Spring boot啟動原理也不太了解,走了很多彎路,在此要特別感謝這個博客幫了我大忙,本來抱着試試看的態度,結果解決了!附上博客鏈接:https://blog.csdn.net/Colton_Null/article/details/82145467
(1)異常信息如下:
(2)異常原因
(3)異常解決方案