前言
实际项目中有时候同一个功能可能在不同的环境会执行不同的操作,比如某些收费的功能,开发环境进行开发的时候可能就不会真正去调用收费的接口。对于如何确定不同的环境,本小节来做一个梳理
这里用到了spring自带的Environment类来处理,获取配置文件中的
spring:
profiles:
active: dev 来进行确定
所在包:import org.springframework.core.env.Environment;
@Component
public class EnvironmentUtil {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(EnvironmentUtil.class);
private static final String DEV = "dev";
/**
* 是否是dev环境
* @return
*/
public static boolean isDev() {
try {
Set<String> activeProfiles = Arrays.stream(SpringUtil.getBean(Environment.class).getActiveProfiles()).collect(Collectors.toSet());
log.info("activeProfiles:{}", activeProfiles);
return activeProfiles.contains(DEV);
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
}
这里也可以直接注入Environment
常用功能
-
获取属性配制文件中的值
environment.getProperty("rabbitmq.address") -
获取是否使用profile的
public boolean isDev(){
boolean devFlag = environment.acceptsProfiles("dev");
return devFlag;
}
评论区