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。

推薦閱讀: