springboot配置開發(fā)和測(cè)試環(huán)境并添加啟動(dòng)路徑方式
springboot配置開發(fā)和測(cè)試環(huán)境并添加啟動(dòng)路徑
嗯,開發(fā)和測(cè)試環(huán)境要分離,這是一般共識(shí)(雖然我工作過的公司都沒有這種分離),spring boot也可以按照配置文件的讀取來做到這一點(diǎn)。

上圖有三個(gè)application開頭的配置文件,要達(dá)到能夠讀取外部配置文件的目的,我們需要引入一個(gè)依賴包,就是紅色箭頭所指的那個(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í)沒什么不同,就是名字不一樣啦

命名不一樣,我在里面配置了不同端口,用于區(qū)分,那么實(shí)際讀取的application.properties是通過
#當(dāng)前服務(wù)環(huán)境為開發(fā)測(cè)試環(huán)境 spring.profiles.active=dev #spring.profiles.active=prod
去讀取開發(fā)或者生產(chǎn)的環(huán)境的。
第一行還可以配置我們項(xiàng)目的根訪問路徑,比如沒有加之前我們?cè)跒g覽器是按localhost:9090/hello訪問的,加了/wow之后,就是按照localhost:9090/wow/hello訪問。
開發(fā)環(huán)境和測(cè)試環(huán)境配置好之后,編寫一個(gè)測(cè)試類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;
}
//一次生成多個(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訪問

切換端口也可以的哦!
SpringBoot配置文件(多環(huán)境配置dev、test、prod、啟動(dòng)器類的位置)
項(xiàng)目開發(fā)中的dev、test、prod是什么意思
- 開發(fā)環(huán)境(dev):開發(fā)環(huán)境是程序猿們專門用于開發(fā)的服務(wù)器,配置可以比較隨意,為了開發(fā)調(diào)試方便,一般打開全部錯(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)告,打開錯(cuò)誤日志。
三個(gè)環(huán)境也可以說是系統(tǒng)開發(fā)的三個(gè)階段:開發(fā)->測(cè)試->上線,其中生產(chǎn)環(huán)境也就是通常說的真實(shí)環(huán)境。
多環(huán)境配置
好處:
1.不同環(huán)境配置可以配置不同的參數(shù)
2.便于部署,提高效率,減少出錯(cuò)
Properties多環(huán)境配置
1、新建三個(gè)環(huán)境文件,編寫三個(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.書寫格式的差異,yaml相對(duì)比較簡潔,優(yōu)雅
3. YAML的缺點(diǎn):不能通過@PropertySource注解加載。如果需要使用@PropertySource注解的方式加載值,那就要使用properties文件。
注意:不能同時(shí)配置兩個(gè)端口,(不能配置application-dev.properties又配置application.yml)
加載順序:位置高的將覆蓋位置低的
啟動(dòng)器類的位置
1、推薦啟動(dòng)器類位于父包下 推薦

第一種情況:啟動(dòng)器類所在包: com.zl.app, 掃描注解: com.zl.app以及它的子包
2、啟動(dòng)器類不是位于父包

第二種情況:啟動(dòng)器類所在包: com.zl.app.main, 掃描注解:com.zl.ap.main以及它的子包
可以在啟動(dòng)器類上添加@ComponentScan(指定掃描的包)

啟動(dòng)器類,掃描注解,是啟動(dòng)器類所在的包,以及子包
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring定時(shí)任務(wù)(scheduler)的串行、并行執(zhí)行實(shí)現(xiàn)解析
這篇文章主要介紹了spring定時(shí)任務(wù)(scheduler)的串行、并行執(zhí)行實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Android開發(fā)Kotlin實(shí)現(xiàn)圓弧計(jì)步器示例詳解
這篇文章主要為大家介紹了Android開發(fā)Kotlin繪制圓弧計(jì)步器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Java經(jīng)典算法匯總之順序查找(Sequential Search)
Java查找算法之順序查找說明:順序查找適合于存儲(chǔ)結(jié)構(gòu)為順序存儲(chǔ)或鏈接存儲(chǔ)的線性表。 下面我們來詳細(xì)說明下2016-04-04
通過java字節(jié)碼分析學(xué)習(xí)對(duì)象初始化順序
今天用了jmock對(duì)進(jìn)行單元測(cè)試編碼,發(fā)現(xiàn)一個(gè)比較奇怪的語法,static使用方法,見下面例子2013-11-11
舉例講解Java的Spring框架中AOP程序設(shè)計(jì)方式的使用
這篇文章主要介紹了Java的Spring框架中AOP程序設(shè)計(jì)方式的使用講解,文中舉的AOP下拋出異常的例子非常實(shí)用,需要的朋友可以參考下2016-04-04
Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語國際化的示例代碼
這篇文章主要介紹了Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語國際化的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Mybatis實(shí)現(xiàn)SQL存儲(chǔ)流程詳解
MyBatis作為一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過程以及高級(jí)映射。它免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作2023-03-03

