Sping Boot+Maven實現多環境切換

在實際開發中,由於dev、test以及prob三個版本的運行環境是不同的(比如數據庫、redis、域名的配置等等),但是它們之間環境的切換又相對頻繁。爲了防止每次版本切換都手工去修改環境、測試環境,Spring Boot 和 Maven提供了profiles來方便我們切換環境。

  1. 首先我們在src/main/resources目錄下創建4個properties文件,分別是application.properties、application-dev.properties、application-prod.properties、application-test.properties。其中application.properties存放3個環境中公共的部分,而其他3個文件則分別用來配置各自環境下對應的某些配置屬性,比如redis服務器ip、數據庫配置等等。還要在applicaiton.properties中添加下面代碼:

    [email protected]@
  2. 然後我們在pom.xml中添加如下代碼

    
    #將/src/main/resources下面的靜態資源按照次序拷貝進來
    
    <resources>
        <resource>
            #首先將resources路徑下所有的properties都exclude掉
            <directory>${basedir}/src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>**/*.properties</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            #然後將需要用的application.properties以及指定的application-${profiles.active}.propertiesinclude進來,並用filtering替換掉佔位符(即@xxx@)
            <includes>
                <include>application.properties</include>
                <include>application-${profiles.active}.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>false</filtering>
            #最後將其他的靜態資源include進來
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
    
    
    #通過profiles來指定不同版本下使用的properties
    
    <profiles來指定不同版本下使用的properties>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
    
        </profile>
    
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
    
        </profile>
    
        <profile>
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>
  3. 然後使用maven clean compile -P{profile的id}來指定使用的環境

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章