springboot 不同環境切換不同的配置文件


開發的流程是本地>測試>預發布>正式,所以不同的環境,肯定是不同的配置文件,所以我們需要針對不同的環境做不同的配置切換.

下面我們來說說 springboot 是怎么來切換的:

1、package 方式使用 war,應用部署到 tomcat 

先來看一下文件結構,

  文件結構

可以看到,這里我們有 3 個 properties 的配置文件,還有 1 個 application.yml文件,這個文件里有一個參數 spring.profiles.active 的選項,這個用來激活不同環境的配置.

然后重點是看下面 pom.xml 的配置,如下:

<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>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <profileActive>pro</profileActive>
            </properties>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
    </profiles>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>application.yml</exclude>
                    <exclude>application.properties</exclude>
                    <exclude>application-dev.properties</exclude>
                    <exclude>application-test.properties</exclude>
                    <exclude>application-pro.properties</exclude>
                </excludes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application-${profileActive}.properties</include>
                    <include>application.yml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <delimiters>@</delimiters>
                    <encoding>utf-8</encoding>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                </configuration>
            </plugin>
    </plugins>

 

 

然后當你在構建項目的時候可以這樣來寫命令 mvn clean package -Dmaven.test.skip=true -P dev/test/pro(根據不同的環境來切換不同的變量值)

 

2、package 方式是 jar,服務器上使用 java -jar 命令來啟動

pom.xml 里的 profiles 配置可以完全刪除,還有 build 里這段配置也可以刪除.

然后在項目啟動的時候通過指定spring.profiles.active 參數來激活配置

nohup java -jar *.jar -dprocesName=templateDecoration --spring.profiles.active=test > /xxx/xxx/xxx.log &

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM