SpringBoot static 静态方法获取 yml 配置文件

Java
499
0
0
2022-11-12
标签   SpringBoot

前言

在开发中有些业务代码中需要判断当前是测试环境还是正式环境来做出不同的逻辑处理。

今天说一下如何在 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,手动获取配置值,获取当前请求