一分鐘學會Spring Boot多環境配置切換

一. 問題由來

        開發環境、測試環境、生產環境--------咱們的軟件在不一樣的環境中,系統參數和配置可能會不同,好比數據源配置、日誌文件配置、以及一些軟件運行過程當中的基本配置,那每次咱們將軟件部署到不一樣的環境時,都須要修改相應的配置文件?Maven提供了一種方便的解決這種問題的方案,就是profile功能。

java

二. Maven實現多環境配置切換的步驟

2.1 定義多環境配置文件

按照不一樣環境,咱們讀取不一樣的配置文件,假設有如下定義:程序員

profile 文件名 配置文件內容
dev application-dev.yml server.port 8090
test application-test.yml server.port 8091
prod application-prod.yml server.port 8092

 

完成後目錄結構以下圖所示spring

 

 

 

2.2 定義運行參數

根據Spring Boot規範,咱們修改application.yml文件添加如下內容
apache

 而這裏咱們主要自定義了一個變量${profileActive}bash

 

2.3 修改Maven pom配置

修改父工程pom.xml文件,添加如下配置app


    
<!--profile配置-->
<profiles>
<profile>
<id>dev</id>
<activation>
<!--默認開啓dev配置-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
</profile>

<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>

<profile>
<id>prd</id>
<properties>
<profileActive>prd</profileActive>
</properties>
</profile>
</profiles>

<!--編譯配置-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>

<!--Resource文件編譯配置-->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application*.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${profileActive}.yml</include>
<include>application.yml</include>
<include>logback.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>

 

pom多環境配置中咱們的核心是利用編譯過程當中,讀取不一樣的配置文件,而後再由spring去讀取參數配置。而這裏咱們利用到變量${profileActive}maven

 

2.4 啓動項目以驗證

按照以上操做步驟完成後:測試

1.在開發過程當中,咱們能夠在Maven視圖選擇你當前的profile。ui

而後運行,例如當前dev環境配置的系統運行端口是8090。那麼啓動控制檯打印以下信息則表配置成功。spa

 

 2.在實際生產環境發佈的時候,咱們運行如下命令便可切換到dev配置

 

mvn clean package -dev
相關文章
相關標籤/搜索