获取当前的环境(dev、test、prod)
![在这里插入图片描述](https://img-blog.csdnimg.cn/65161c8e3a6a4fea84beed6eb5925907.png)
package com.platform.modules.chat.utils;
import com.aliyun.oss.common.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.TimeZone;
public class SpringProfileUtil {
private static Logger log = LoggerFactory.getLogger(SpringProfileUtil.class);
private static ApplicationContext applicationContext;
//0-2表示开发,测试,生产环境
private static byte environ = 0;
public static void setApplicationContext(ApplicationContext context) {
SpringProfileUtil.applicationContext = context;
//获取当前的系统环境
Environment evn = applicationContext.getEnvironment();
String[] activeProfiles = evn.getActiveProfiles();
for (String profile : activeProfiles) {
if ("dev".equalsIgnoreCase(StringUtils.trim(profile))){
environ = 0;
break;
} else if ("test".equalsIgnoreCase(StringUtils.trim(profile))){
environ = 1;
break;
} else if ("prod".equalsIgnoreCase(StringUtils.trim(profile))){
environ = 2;
break;
}
}
callbackAfterRunning();
log.info("当前环境 environ "+ environ );
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//获取配置文件配置值
public static String getEvnProperty(String key){
return applicationContext.getEnvironment().getProperty(key);
}
//通过bean名称获取bean
public static Object getBeanByName(String name){
try {
return getApplicationContext().getBean(name);
} catch (Exception e){
return null;
}
}
public static Object getBeanByClassName(String className){
try{
Class aClass = Class.forName(className);
Object obj = getApplicationContext().getBean(aClass);
return obj;
}catch(Exception ex){
return null;
}
}
public static <T> T getBean(Class<T> clazz) {
if (SpringProfileUtil.applicationContext == null) {
return null;
}
try {
return SpringProfileUtil.applicationContext.getBean(clazz);
} catch (Exception e){
return null;
}
}
//当前是否为开发环境
public static boolean isDev() {
return environ == 0;
}
//是否为测试环境
public static boolean isTest(){
return environ == 1;
}
//是否为生产环境
public static boolean isProd(){
return environ == 2;
}
///获取当前环境
public static byte getEnviron(){
return environ;
}
//获取当前请求
public static HttpServletRequest currentRequest(){
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return servletRequestAttributes.getRequest();
}
private static void callbackAfterRunning(){
TimeZone.setDefault( TimeZone.getTimeZone("Asia/Shanghai") );
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/137f14c9175e4e23991e381bd34244c0.png)
package com.platform.modules.chat.ry.constant;
import com.platform.modules.chat.utils.SpringProfileUtil;
import javafx.beans.property.StringProperty;
/**
* @author dky
* @version 1.0
* @date 2023/3/3 13:32
*/
public class ConstantRy {
public static final String TEST_APP_KEY ="c9kqb3rdcjofj"; //测试appKey
public static final String TEST_APP_SECRET ="JDTXdPRffr"; //测试appSecret
public static final String APP_KEY ="6tnym1br6k4l7"; //正式 appKey
public static final String APP_SECRET ="QdWYWDpiFns70"; //正式appSecret
public static String getAppKey(){
if(SpringProfileUtil.isDev()){
return TEST_APP_KEY;
}else if(SpringProfileUtil.isTest()){
return TEST_APP_KEY;
}else if(SpringProfileUtil.isProd()){
return APP_KEY;
}
return TEST_APP_KEY;
}
public static String getAppSecret(){
if(SpringProfileUtil.isDev()){
return TEST_APP_SECRET;
}else if(SpringProfileUtil.isTest()){
return TEST_APP_SECRET;
}else if(SpringProfileUtil.isProd()){
return APP_SECRET;
}
return TEST_APP_SECRET;
}
}