spring boot中获取profile(运行的环境)
·
前言
有时候我们的需求需要根据环境的不同来执行不同的业务逻辑,这时候我们就需要获取项目当前运行的是哪个环境,下面介绍个方法
通过ApplicationContext获取profile
方法如下:
/**
* 获取spring.profiles.active
* @return
*/
public static String getProfile(){
return getApplicationContext().getEnvironment().getActiveProfiles()[0];
}
getApplicationContext方法为获取applicationContext,然后从applicationContext获取到当前的运行环境
整个工具类如下,大家可以拿来即用:
@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];
}
}
更多推荐
所有评论(0)