學會springboot多環境配置方案不用5分鐘

一 前言

本篇文章的主題是在springboot中寫多個配置文件,指定讓個配置文件生效,以便於達到在開發環境,測試環境,線上環境根據不一樣的配置靈活應用;讀完本篇你將得到,學會springboot的多環境配置;學會使用idea配置虛擬機參數啓動不一樣的配置文件;學會使用jar包運行而且指定不一樣的配置文件等;java

二 激活方式一

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

2.1pom.xml

引入依賴boor-start依賴和打包插件;jdk1.8版本,boot2.1.1;spring

<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方法,用於瀏覽器測試;springboot

@RestController
public class ZSZXZ {

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

2.4 啓動類

啓動類添加@SpringBootApplication註解,表名是個springboot應用,會進行自動配置;app

/**
 * @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/zszxzmaven

2.6 pro執行結果

application.yml中修改激活環境爲pro後重啓工程,修改瀏覽器端口,執行結果以下說明配置成功;ide

# 激活配置
spring:
  profiles:
    active: pro

http://localhost:8061/zszxzspring-boot

執行結果

三 激活方式二

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 啓動後結果 與以前一致,再也不貼圖浪費資源;

相關文章
相關標籤/搜索