前言
在开发中有些业务代码中需要判断当前是测试环境还是正式环境来做出不同的逻辑处理。
今天说一下如何在 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
来获取当前的环境了。