美文网首页
spring boot中获取profile(当前运行的环境)

spring boot中获取profile(当前运行的环境)

作者: 一介书生独醉江湖 | 来源:发表于2022-05-05 16:14 被阅读0次
# 1)获取项目当前运行的是哪个环境;
# 2)需要根据环境的不同来执行不同的业务逻辑;


import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * @Author ds
 * @Date 2022-05-05
 */
@Component
public class SpringContextUtil implements ApplicationContextAware {
    /**
     * spring的应用上下文
     */
    private static ApplicationContext applicationContext;

    /**
     * 初始化时将应用上下文设置进applicationContext
     * @param applicationContext
     * @throws BeansException
     */
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringContextUtil.applicationContext=applicationContext;
    }

    public static ApplicationContext getApplicationContext(){
        return applicationContext;
    }

    /**
     * 根据bean名称获取某个bean对象
     *
     * @param name bean名称
     * @return Object
     * @throws BeansException
     */
    public static Object getBean(String name) throws BeansException {
        return applicationContext.getBean(name);
    }

    /**
     * 根据bean的class获取某个bean对象
     * @param beanClass
     * @param <T>
     * @return
     * @throws BeansException
     */
    public static <T> T getBean(Class<T> beanClass) throws BeansException {
        return applicationContext.getBean(beanClass);
    }

    /**
     * 获取spring.profiles.active
     * @return
     */
    public static String getProfile(){
        return getApplicationContext().getEnvironment().getActiveProfiles()[0];
    }
}
        if("pro".equals(SpringContextUtil.getProfile())){
            // 生产环境需要执行的逻辑
        }else if("dev".equals(SpringContextUtil.getProfile())){
            // 测试环境需要执行的逻辑
        }
# 参考:https://blog.csdn.net/qq_36551991/article/details/118972086

相关文章

网友评论

      本文标题:spring boot中获取profile(当前运行的环境)

      本文链接:https://www.haomeiwen.com/subject/yaxoyrtx.html