springboot配置開發(fā)和測試環(huán)境并添加啟動路徑方式
springboot配置開發(fā)和測試環(huán)境并添加啟動路徑
嗯,開發(fā)和測試環(huán)境要分離,這是一般共識(雖然我工作過的公司都沒有這種分離),spring boot也可以按照配置文件的讀取來做到這一點(diǎn)。
上圖有三個application開頭的配置文件,要達(dá)到能夠讀取外部配置文件的目的,我們需要引入一個依賴包,就是紅色箭頭所指的那個,把這段加入pom.xml的<dependencies></dependencies>節(jié)點(diǎn)里面
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
三個application文件有什么不同呢?其實沒什么不同,就是名字不一樣啦
命名不一樣,我在里面配置了不同端口,用于區(qū)分,那么實際讀取的application.properties是通過
#當(dāng)前服務(wù)環(huán)境為開發(fā)測試環(huán)境 spring.profiles.active=dev #spring.profiles.active=prod
去讀取開發(fā)或者生產(chǎn)的環(huán)境的。
第一行還可以配置我們項目的根訪問路徑,比如沒有加之前我們在瀏覽器是按localhost:9090/hello訪問的,加了/wow之后,就是按照localhost:9090/wow/hello訪問。
開發(fā)環(huán)境和測試環(huán)境配置好之后,編寫一個測試類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配置文件(多環(huán)境配置dev、test、prod、啟動器類的位置)
項目開發(fā)中的dev、test、prod是什么意思
- 開發(fā)環(huán)境(dev):開發(fā)環(huán)境是程序猿們專門用于開發(fā)的服務(wù)器,配置可以比較隨意,為了開發(fā)調(diào)試方便,一般打開全部錯誤報告。
- 測試環(huán)境(test):一般是克隆一份生產(chǎn)環(huán)境的配置,一個程序在測試環(huán)境工作不正常,那么肯定不能把它發(fā)布到生產(chǎn)機(jī)上。
- 生產(chǎn)環(huán)境(prod):是值正式提供對外服務(wù)的,一般會關(guān)掉錯誤報告,打開錯誤日志。
三個環(huán)境也可以說是系統(tǒng)開發(fā)的三個階段:開發(fā)->測試->上線,其中生產(chǎn)環(huán)境也就是通常說的真實環(huán)境。
多環(huán)境配置
好處:
1.不同環(huán)境配置可以配置不同的參數(shù)
2.便于部署,提高效率,減少出錯
Properties多環(huán)境配置
1、新建三個環(huán)境文件,編寫三個不同的端口
application-dev.properties
server.port=8888
application-prod.properties
server.port=8999
application-test.properties
application-test.properties
2、在核心配置文件application.properties中調(diào)用
spring.profiles.active=dev
3、驗證:看控制臺信息,端口是否為對應(yīng)端口
YAML多環(huán)境配置 application.yml
1、配置激活選項
spring: profiles: active: dev
2、在配置文件添加三個英文狀態(tài)下的短橫線即可區(qū)分
--- #新的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配置多環(huán)境,需要添加多個配置文件,YAML只需要一個配件文件
2.書寫格式的差異,yaml相對比較簡潔,優(yōu)雅
3. YAML的缺點(diǎn):不能通過@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(指定掃描的包)
啟動器類,掃描注解,是啟動器類所在的包,以及子包
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
創(chuàng)建Maven項目和Spring IOC實例過程解析
這篇文章主要介紹了創(chuàng)建Maven項目和Spring IOC實例過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說明
這篇文章主要介紹了java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03淺試仿?mapstruct實現(xiàn)微服務(wù)編排框架詳解
這篇文章主要為大家介紹了淺試仿?mapstruct實現(xiàn)微服務(wù)編排框架詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08springboot+vue制作后臺管理系統(tǒng)項目
本文詳細(xì)介紹了后臺管理使用springboot+vue制作,以分步驟、圖文的形式詳細(xì)講解,大家有需要的可以參考參考2021-08-08java基于jdbc實現(xiàn)簡單學(xué)生管理系統(tǒng)
本文主要主要介紹了java連接mysql數(shù)據(jù)庫的一個簡單學(xué)生系統(tǒng),通過jdbc連接數(shù)據(jù)庫。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10使用Springboot 打jar包實現(xiàn)分離依賴lib和配置
這篇文章主要介紹了使用Springboot 打jar包實現(xiàn)分離依賴lib和配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02