|
springboot的多profile配置[云圖智聯]6
發表時間:2020-07-13 10:10 一個項目基本的會有三種環境,開發dev,測試test,生產 prod。每個環境下的參數配置都不一樣,所以配置文件的內容都會不同,那么如何實現實現不同環境之間的切換呢? profile 是spring用針對不同環境對不同的配置提供支持的,那么如何定義不同的profile呢? profile定義定義profile一共有兩種形式properties配置文件、yml配置文件 1.properties文件格式:application-{文件標識}.properties 示例:
(在不同的profile環境中定義不同的端口號,運行的時候查看控制臺信息,確定最終使用的是哪一個profile環境) 編寫一個名為 application-dev.properties文件: server.port=8081 編寫一個名為application-prod.properties文件: server.port=8082 圖示: 2.yml配置文件2.1多文件形式 yml文件同樣也可以使用多個配置文件進行配置,例如: 編寫一個名為 application-dev.yml文件: server: port: 8081 編寫一個名為application-prod.yml文件: server: port: 8082 2.2文檔塊形式 yml文件可以使用“---”定義不同的文檔塊,作用類似上面的多個配置文件效果 server: port: 8085 spring: profiles: active: prod #激活prod環境 --- server: port: 8084 spring: profiles: prod #指定屬于哪個環境 profile環境切換實現不同profile環境切換一共有三種形式 1.配置文件設置:在主配置文件中設置對應的屬性 properties spring.profiles.active=dev 也可以在IDEA編輯器中設置 圖示: 2.追加項目參數:在控制臺使用命令啟動項目,設置active參數 2.1先打包項目 2.2docs命令執行(也就是所謂的cmd窗口) java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev 同樣在IDEA中也可以設置啟動參數與命令同理
圖示: 3.虛擬機參數:步驟類似上一步,IDEA設置啟動項配置
-Dspring.profiles.active=dev 注意:-D是固定寫法 圖示: 4.使用Maven Profile4.1Profile配置——xml Maven 也提供了 Profile 支持,它允許我們在 <profiles> <profile> <!--不同環境Profile的唯一id--> <id>dev</id> <activation> <!--配置默認激活--> <activeByDefault>true</activeByDefault> </activation> <properties> <!--profiles.active是自定義的字段(名字隨便起),自定義字段可以有多個--> <profile.active>dev</profile.active> </properties> </profile> <profile> <id>prod</id> <properties> <profile.active>prod</profile.active> </properties> </profile> </profiles>
4.2Profile配置——命令行配置 即在使用maven打包時通過-P參數,-P后跟上profile的唯一id,如 mvn clean package -Ptest 熟悉idea的同學都知道,這里的${profile.active}我們在idea的maven的配置處進行快速的切換。 我們知道主配置文件的dev/test/prod在沒有使用Maven Profile的時候,我們是需要手動修改的,但是使用Maven Profile之后,我們可以把這個工作交給maven去做。 在application.yml進行下面的修改: spring: profiles: active: @profile.active@ #此處由maven的環境選擇決定 這樣我們就可以完全把配置文件的指定和生成交給maven。 免費學習視頻歡迎關注云圖智聯: |