SpringBoot static 靜態方法獲取 yml 配置檔案

邢闖洋發表於2022-08-20

前言

在開發中有些業務程式碼中需要判斷當前是測試環境還是正式環境來做出不同的邏輯處理。

今天說一下如何在 static 靜態方法中獲取到 yml 配置檔案中的配置值,從而獲得當前的環境是測試環境還是正式環境。

首先建立一個類,編寫所需方法

@Getter
public class Result<T> {
    private static String env;

    public static void setEnv(String env) {
        Result.env = env;
    }

    public static String getEnv() {
        return Result.env;
    }
}

接著建立讀取配置檔案的類

package com.sktk.keepAccount.config;

import com.sktk.keepAccount.common.core.vo.Result;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 該類使用場景在:當需要在靜態方法中獲取配置時,因靜態方法無法直接獲取配置
 * https://jingyan.baidu.com/article/215817f7c907835fdb142348.html
 */
@Configuration
public class EnvConfig {

    // 定義要讀取的配置key
    @Value("${spring.profiles.active}")
    private String env;

    @Bean
    public int initStatic() {
        Result.setEnv(env);
        return 0;
    }
}

使用

接下來,就可以直接在任意地方使用 Result.getEnv 來獲取當前的環境了。

參考文章

springboot static靜態方法獲取yml配置檔案
springboot普通類獲取當前環境,判斷當前是否為開發環境,手動獲取bean,手動獲取配置值,獲取當前請求

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章