前言
实际项目中有时候同一个功能可能在不同的环境会执行不同的操作,比如某些收费的功能,开发环境进行开发的时候可能就不会真正去调用收费的接口。对于如何确定不同的环境,本小节来做一个梳理
这里用到了spring自带的Environment类来处理,获取配置文件中的 spring: profiles: active: dev 来进行确定
所在包:import org.springframework.core.env.Environment;
代码语言:javascript复制@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; }