Spring Boot手把手教學(2):使用yml多環境配置和建立多環境profile打包

一、yml多環境配置

Spring Boot中多環境配置文件名須要知足application-{profile}.yml的格式,其中{profile}對應你的環境標識;java

application-dev 開發環境
application-test 測試環境
application-prod 生產環境
複製代碼

若是咱們要激活某一個環境,只須要在 application.yml裏:git

spring:
 profiles:
 active: dev
複製代碼

此外,假設咱們配置一些基本設置如:spring

application-dev.ymlbash

server:
 port: 9001
複製代碼

application-test.ymlmarkdown

server:
 port: 9002
複製代碼

application-prod.ymlapp

server:
 port: 9003
複製代碼

此時,當咱們去修改application.ymlmaven

  1. 改成 dev

  1. 改成 test

  1. 改成 prod

二、建立多環境profile打包

經過上述步驟,能夠輕鬆切換當前環境,不過也稍微有些麻煩,那是否有一些配置文件能夠代替手動更改profile而且能建立多環境profile打包呢oop

答案是確定的
複製代碼

pom.xml測試

pom文件中添加profile節點,並在build下的resources節點添加打包過濾的配置文件規則ui

<profiles>
        <profile>
            <!-- 開發環境 -->
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <!-- 默認激活的環境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 測試環境 -->
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <!-- 生產環境 -->
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>
    
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application-${profileActive}.yml</include>
                    <include>application.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

複製代碼

application.yml中配置一個動態屬性進行佔位,默認的分隔符是@屬性名@,這個屬性會經過maven打包時傳入參數進行替換;

spring:
  profiles:
    active: @profileActive@
複製代碼

右側的可視化選擇環境,讓工做更加變得高效;

maven 多環境打包

打包過濾配置文件規則也是用一個佔位符進行佔位,打包時也會經過maven傳入參數進行替換。

  • 一、經過 -D命令傳入屬性值profileActive,如:
clean install -Dmaven.test.skip=true -DprofileActive=dev
複製代碼
  • 二、經過-P命令指定profile環境,如:
clean package -P prod
複製代碼

右側可視化選擇更加方便:

🆗閒話很少說,好了,這一小章到此結束;

代碼倉庫地址:點擊進入

相關文章
相關標籤/搜索