springboot配置開發和測試環境並添加啟動路徑方式
springboot配置開發和測試環境並添加啟動路徑
嗯,開發和測試環境要分離,這是一般共識(雖然我工作過的公司都沒有這種分離),spring boot也可以按照配置文件的讀取來做到這一點。
上圖有三個application開頭的配置文件,要達到能夠讀取外部配置文件的目的,我們需要引入一個依賴包,就是紅色箭頭所指的那個,把這段加入pom.xml的<dependencies></dependencies>節點裡面
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
三個application文件有什麼不同呢?其實沒什麼不同,就是名字不一樣啦
命名不一樣,我在裡面配置瞭不同端口,用於區分,那麼實際讀取的application.properties是通過
#當前服務環境為開發測試環境 spring.profiles.active=dev #spring.profiles.active=prod
去讀取開發或者生產的環境的。
第一行還可以配置我們項目的根訪問路徑,比如沒有加之前我們在瀏覽器是按localhost:9090/hello訪問的,加瞭/wow之後,就是按照localhost:9090/wow/hello訪問。
開發環境和測試環境配置好之後,編寫一個測試類controller
@RestController public class UserController { @RequestMapping("/getUser") public User getUser() { User user= new User(); user.setId(PlantUuid.moreUuid(1)); user.setName("ahei"); user.setPwd("123456"); return user; } }
其中的工具類PlantUuid如下:
package com.example.util; import java.util.UUID; public class PlantUuid { public static void main(String[] args) { // TODO Auto-generated method stub //moreUuid(10); } //得到32位的uuid public static String createUuid32() { String uuid = ""; uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase(); System.out.print("---生成的uuid是---"+uuid+"\n"); return uuid; } //一次生成多個uuid public static String moreUuid(Integer t) { String more_uuid = ""; Integer k = 0; for (k=0;k<t;k++) { more_uuid = createUuid32(); } return more_uuid; } }
在瀏覽器按localhost:9090/wow/getUser訪問
切換端口也可以的哦!
SpringBoot配置文件(多環境配置dev、test、prod、啟動器類的位置)
項目開發中的dev、test、prod是什麼意思
- 開發環境(dev):開發環境是程序猿們專門用於開發的服務器,配置可以比較隨意,為瞭開發調試方便,一般打開全部錯誤報告。
- 測試環境(test):一般是克隆一份生產環境的配置,一個程序在測試環境工作不正常,那麼肯定不能把它發佈到生產機上。
- 生產環境(prod):是值正式提供對外服務的,一般會關掉錯誤報告,打開錯誤日志。
三個環境也可以說是系統開發的三個階段:開發->測試->上線,其中生產環境也就是通常說的真實環境。
多環境配置
好處:
1.不同環境配置可以配置不同的參數
2.便於部署,提高效率,減少出錯
Properties多環境配置
1、新建三個環境文件,編寫三個不同的端口
application-dev.properties
server.port=8888
application-prod.properties
server.port=8999
application-test.properties
application-test.properties
2、在核心配置文件application.properties中調用
spring.profiles.active=dev
3、驗證:看控制臺信息,端口是否為對應端口
YAML多環境配置 application.yml
1、配置激活選項
spring: profiles: active: dev
2、在配置文件添加三個英文狀態下的短橫線即可區分
--- #新的yml文件,這個文件的名字dec spring: profiles: dev #dev的配置 server: port: 8888 --- #新的yml文件,這個文件的名字test spring: profiles: test #dev的配置 server: port: 8899 --- #新的yml文件,這個文件的名字prod spring: profiles: prod #dev的配置 server: port: 9999
兩種配置方式的比較
1. Properties配置多環境,需要添加多個配置文件,YAML隻需要一個配件文件
2.書寫格式的差異,yaml相對比較簡潔,優雅
3. YAML的缺點:不能通過@PropertySource註解加載。如果需要使用@PropertySource註解的方式加載值,那就要使用properties文件。
註意:不能同時配置兩個端口,(不能配置application-dev.properties又配置application.yml)
加載順序:位置高的將覆蓋位置低的
啟動器類的位置
1、推薦啟動器類位於父包下 推薦
第一種情況:啟動器類所在包: com.zl.app, 掃描註解: com.zl.app以及它的子包
2、啟動器類不是位於父包
第二種情況:啟動器類所在包: com.zl.app.main, 掃描註解:com.zl.ap.main以及它的子包
可以在啟動器類上添加@ComponentScan(指定掃描的包)
啟動器類,掃描註解,是啟動器類所在的包,以及子包
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 教你在SpringBoot中管理多環境配置文件
- SpringBoot多環境開發與日志小結
- SpringBoot框架配置文件路徑設置方式
- Springboot項目啟動時如何用命令動態指定環境
- 深入理解springboot中配置文件application.properties