获取当前的环境(dev、test、prod)

获取当前的环境(dev、test、prod)

在这里插入图片描述

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") );
    }
}

在这里插入图片描述

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;
    }
}


版权声明:本文为weixin_55181056原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。