# 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
网友评论