IDEA結合Maven的profile構建不同開發環境(SpringBoot)


一、概述

  在開發過程中,我們的項目會存在不同的開發環境,比如開發環境、生產環境、測試環境,而我們的項目在不同的環境中有些配置也是不一樣的,比如數據源配置、日志文件配置等,假如我們每次將軟件部署到不同的環境時,都需要對相應的配置文件進行修改,來來回回修改,很容易出現少改的地方,而且浪費我們的勞動力。項目用的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)異常解決方案

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM