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