spring.profiles.active=@profiles.active@的含義

苹果芒發表於2024-09-23

yml配置檔案是我們在真實工作中經常會使用的配置檔案的格式,有時候我們會遇到些我們沒有遇到過的新的表現形式。下面我將會談談我在工作中遇到的一個日誌配置檔案比較有意思的表現形式:

spring.profiles.active=@profiles.active@的含義

spring.profiles.active=@profiles.active@ ,其實是配合 maven profile進行選擇不同配置檔案進行啟動。

當執行mvn clean package -P test命令時, @profiles.active@ 會替換成 test

開啟 jar包,即可看到:

案例

1、構建一個springboot 專案

這裡使用idea進行構建的,這個過程省略

2、pom檔案配置

<profiles>
        <profile>
            <!-- 生產環境 -->
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 本地開發環境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 測試環境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
    </profiles>

預設dev配置

1、配置多個配置檔案

application.properties

注意這裡的profiles.active 要和pom檔案的對應上

spring.profiles.active=@profiles.active@

application-dev.properties

name = "dev"

application-prod.properties

name = "prod"

application-test.properties

name = "test"

2、編寫個測試的controller

@RestController
public class HelloController {
 
    @Value("${name}")
    private String name;
 
    @RequestMapping(value = {"/hello"},method = RequestMethod.GET)
    public String say(){
        return name;
    }

3、啟動測試

使用idea工具啟動開發:

預設是dev,假如想要使用prod配置檔案,如上圖選擇prod,注意下面的匯入,重啟專案

D:\dev_code\profiles-demo\target>curl http://localhost:8080/hello
"prod"

4、打包

這裡使用idea打包也可以使用命令列打包。

如果你使用命令

mvn clean package -P dev

則是使用dev配置

相關文章