springBoot 查看当前环境 是否正式 测试 工具类
jar启动命令
java -jar /usr/local/xxx.jar --spring.profiles.active=prod > /dev/null 2>&1 &
启动命令介绍 :
- java -jar:启动jar的核心命令
- /usr/local/xxx.jar:java项目的jar包路径
- spring.profiles.active=prod:启动时使用那个配置文件(如底部图)。
- > /dev/null 2>&1 :项目日志存放位置, /dev/null是一个特殊的文件,写入到它的内容都会被丢弃;但是/dev/null文件非常的有用,将命令的输出重定向到它,会起到“静止输出”的效果。
- & :表示后台运行
为什么要区分正式测试环境
当启动命令spring.profiles.active=prod 时 即为prod环境,spring.profiles.active=test时即为test环境
我们通过一下工具类,可以更便捷的在线上和测试环境做出不同的处理,如支付测试、登录限制、短信登录等,可以在测试环境做特殊处理,测试环境:每次支付都是0.01、登录没有token超时、固定短信内容登录等。
工具类
以下便是工具类:
@Component
public class SpringUtil {
@Autowired
private Environment environment;
//当前是否为开发环境
public boolean isDev() {
String[] activeProfiles = environment.getActiveProfiles();
List<String> activeProfileList = Arrays.asList(activeProfiles);
return activeProfileList.contains("dev");
}
//是否为测试环境
public boolean isTest(){
String[] activeProfiles = environment.getActiveProfiles();
List<String> activeProfileList = Arrays.asList(activeProfiles);
return activeProfileList.contains("test");
}
//是否为生产环境
public boolean isProd(){
String[] activeProfiles = environment.getActiveProfiles();
List<String> activeProfileList = Arrays.asList(activeProfiles);
return activeProfileList.contains("prod");
}
}
可以结合自己的项目 增加工具类方法,或修改contains(“prod”)里的prod为自己的yml文件名后缀。