前面的文章已經介紹了CentOS部署SpringBoot項目從0到1的詳細過程,包括Linux安裝ftp、Tomcat以及Java jdk的所有過程。這篇文章主要介紹關於springboot如何經過多個properties實現數據庫環境部署時自動切換配置的兩種方式,部署時切換方式和打包時Maven控制方式。html
關於springboot基礎礦建搭建有疑問的。能夠看我以前的一篇文章。詳解intellij idea搭建SpringBootjava
正常來說,一個軟件的開發上線的流程大部分都是分爲三個環境,依次是開發、測試、上線。mysql
開發環境(dev):git
開發環境是指的是我們本地跑的環境。測試環境(qa):github
通常是克隆一份生產環境的配置,qa即test。生產環境(prod)spring
正式提供對外服務的,便是真實環境。關於三個環境的切換已然標準化了,這裏只是一筆帶過一下,由於下文中的配置文件會跟三個環境有關聯。相信全部人都不會對這三個環境陌生的。sql
今天主要講講關於springboot如何經過多個properties實現數據庫環境部署時自動切換配置的兩種方式,部署時切換方式和打包時Maven控制方式。首先介紹部署時切換的方式。數據庫
1.1 配置dev和qa環境數據,以備測試。springboot
1.2 新增properties文件app
如上圖:在application.properties文件的同級目錄依次建立application-dev.properties,application-qa.properties,application-pro.properties這三個配置文件,dev、qa和prod分別對應上文"環境介紹"中的三個環境。
1.3 配置各個properties文件
在application.properties中添加配置切換選項,例如切換到dev環境的配置爲:spring.profiles.active=dev
依次在application-dev.properties,application-qa.properties,application-pro.properties配置相關datasource鏈接信息。
例如application-dev.properties配置:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest
spring.datasource.username=root
spring.datasource.password=***********
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
1.4 本地環境
當設置application.properties中spring.profiles.active=dev
時,則此時啓動鏈接的是dev環境。
如上圖,此時運行獲得的結果與配置文件一致,是dev環境的數據。
1.5 部署測試環境
部署測試環境,關於部署有不瞭解的能夠看看《CentOS部署SpringBoot項目從0到1》,部署時切換到qa環境。
java -jar zuche-0.0.1-SNAPSHOT.jar --spring.profiles.active=qa --server.port=2008
能夠看到日誌中顯示的內容與預期一致,spring.profiles.active設置爲qa, 端口設置爲2008。
運行效果以下圖,部署之後鏈接的qa環境。
2.1 設置項目對象模型pom.xml
2.1.1 添加profiles到pom.xml中,profiles節點是和build同級的。
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles>
activation
表示的是能夠用這樣的命令來觸發profile,true
表示dev是默認的profile, 這樣本地直接ide啓動項目的時候就是鏈接的dev環境。
2.1.2 添加filters節點。
<filters> <filter>src/main/resources/application-${env}.properties</filter> </filters>
2.2 更新application.properties。
spring.profiles.active=@env@
注意@env@中的env能夠理解爲一個變量,須要與2.1.2中設置的${env}對應上。
2.3 添加Maven打包命令
clean package -P qa -D maven.test.skip=true
-D maven.test.skip=true
不執行測試用例,也不編譯測試用例類。
2.4 執行Maven命令
查看jar包的application.properties文件的spring.profiles.active,看Maven命令是否生效。
如上圖,spring.profiles.active=qa
2.5 部署Tomcat
java -jar zuche-0.0.1-SNAPSHOT.jar --server.port=2008
Maven打包時已經設置了qa環境,部署命令中不須要再指明qa環境。
本文通篇講的主要是圍繞springboot部署jar包的兩種方式,至於war包,之後有時間再說說。
https://github.com/toutouge/javademosecond/tree/master/hellospringboot
做 者:請叫我頭頭哥
出 處:http://www.cnblogs.com/toutou/
關於做者:專一於基礎平臺的項目開發。若有問題或建議,請多多賜教!
版權聲明:本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
特此聲明:全部評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角【推薦】一下。您的鼓勵是做者堅持原創和持續寫做的最大動力!