1. 程式人生 > 程式設計 >springboot多環境配置方案(不用5分鐘)

springboot多環境配置方案(不用5分鐘)

一 前言

本篇文章的主題是在springboot中寫多個配置檔案,指定讓個配置檔案生效,以便於達到在開發環境,測試環境,線上環境根據不同的配置靈活應用;讀完本篇你將獲得,學會springboot的多環境配置;學會使用idea配置虛擬機器引數啟動不同的配置檔案;學會使用jar包執行並且指定不同的配置檔案等;

二 啟用方式一

spring框架內部提供了2中方式用於載入YAML文件,以供啟動時讀取配置檔案;YamlPropertiesFactoryBean 會 載入 YAML 變為 Properties;YamlMapFactoryBean 會 轉換 YAML 為map;使用YAML更加簡便不用擔心內部具體如何轉換;

2.1pom.xml

引入依賴boor-start依賴和打包外掛;jdk1.8版本,boot2.1.1;

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
    <relativePath/>
  </parent>
  
	<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

2.2 application.yml

一切從簡,知識追尋者不會在配置檔案中寫其他內容,就指定埠即可,用於區別不同的環境;其中配置開發環境為dev,生產環境為pro;預設啟用dev 環境;

# 啟用配置
spring:
 profiles:
  active: dev

---
# 配置一 開發環境
spring:
 profiles: dev
server:
 port: 8060

---
# 配置二 生產環境
spring:
 profiles: pro

server:
 port: 8061

2.3 controller

controller一個hell方法,用於瀏覽器測試;

@RestController
public class ZSZXZ {

  @GetMapping("zszxz")
  public String hello(){
    return "hello 知識追尋者";
  }
}

2.4 啟動類

啟動類新增@SpringBootApplication註解,表名是個springboot應用,會進行自動配置;

/**
 * @Author lsc
 * <p> 多環境配置 </p>
 */
@SpringBootApplication
public class ProfileApp {

  public static void main(String[] args) {
    SpringApplication.run(ProfileApp.class,args);
  }
}

2.5 dev執行結果

啟動工程,開啟瀏覽器路徑如下,埠是8086,說明預設啟用dev環境已經成功

http://localhost:8060/zszxz

2.6 pro執行結果

application.yml中修改啟用環境為pro後重啟工程,修改瀏覽器埠,執行結果如下說明配置成功;

# 啟用配置
spring:
 profiles:
  active: pro

http://localhost:8061/zszxz

執行結果

三 啟用方式二

3.1 application.yml

去除application.yml中啟用方式,知識追尋者改用idea配置VM引數選項方式進行啟用;

---
# 配置一 開發環境
spring:
 profiles: dev
server:
 port: 8060

---
# 配置二 生產環境
spring:
 profiles: pro

server:
 port: 8061

3.2 idea配置VM引數

在VM選項中輸入-Dspring.profiles.active=dev,表示啟用dev環境;然後重啟工程訪問即可

四 專案部署方式

將工程打包成jar包,在cmd中如下命令執行,如果包名不同請替換,然後瀏覽器訪問即可;

java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev

五 多配置檔案方式

上面的配置檔案都寫在一個application.yml中,過於累贅,為了方便查閱和解耦合,推薦多個配置檔案方式,然後在主配置檔案中啟用,具體的步驟如下;

5.1 application-zszxz.yml

新建yml檔名為application-zszxz.yml;內容如下

server:
 port: 8061

5.2 application-test.yml

新建yml檔名為application-test.yml;內容如下

server:
 port: 8060

5.3 application.yml

修改application.yml內容如下

spring:
 profiles:
  active: zszxz

5.4 啟動後結果

http://localhost:8061/zszxz 啟動後結果 與之前一致,不再貼圖浪費資源;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。