首頁 > 軟體

SpringBoot-application.yml多環境設定詳解

2022-07-24 14:01:48

介紹

開發SpringBoot應用的時候,通常程式需要在測試環境測試成功後才會上線到生產環境。而測試環境和生產環境的資料庫地址、伺服器埠等設定都不同。在為不同環境打jar包時,需要頻繁的修改application.yml組態檔,十分麻煩。
可以採用建立多個組態檔的方法解決這一問題。

為了實現多環境設定,我們可以在本地開發的時候在Resource資料夾下新建不同環境的組態檔,如下圖所示:

預設組態檔application.yml檔案可根據自己需求使用,最後會合並其他的application-xx.yml組態檔,當前環境組態檔內容優先,application.yml優先順序最低,相同內容使用優先順序最高的,不同內容合併

maven

    <dependencies>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <delimiters>@</delimiters>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <!--開啟過濾,用指定的引數替換directory下的檔案中的引數-->
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
    <!-- 多環境設定方案 -->
    <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>

之後重新整理Maven就會出現各種環境的選項了,預設是dev環境,打包的時候選擇對應的環境打包就行了

yml設定

在application.yml,application-dev.yml, application-prod.yml,application-test.yml 裡都加上下面的設定

spring:
  profiles:
    active:  @profileActive@ # dev開發環境

啟動的時候就會自動獲取Maven裡勾選的設定了

到此這篇關於SpringBoot-application.yml多環境設定詳解的文章就介紹到這了,更多相關SpringBoot application.yml多環境內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com