当我们需要根据不同环境读取不同配置的时候,即可在这边获取当前运行的环境,针对不同的业务。做不同的操作
废话少说直接上代码:
原理即是当项目运行的时候获取spring的上下文。从上下文中取到当前的运行环境。当然spring上下文的内容非常多。
@Component
public class SpringContextUtils implements ApplicationContextAware {
public static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringContextUtils.applicationContext = applicationContext;
//获取环境
Environment environment = applicationContext.getEnvironment();
//这个获取的是配置的运行环境,如开发,测试,以及生产
String[] activeProfiles = environment.getActiveProfiles();
//这个获取的是当前项目默认的运行环境,一般设置为开发
String[] defaultProfiles = environment.getDefaultProfiles();
}
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
public static T getBean(String name, Class requiredType) {
return applicationContext.getBean(name, requiredType);
}
public static boolean containsBean(String name) {
return applicationContext.containsBean(name);
}
public static boolean isSingleton(String name) {
return applicationContext.isSingleton(name);
}
public static Class extends Object> getType(String name) {
return applicationContext.getType(name);
}
}
标签:profile,applicationContext,return,javaWeb,项目,String,static,public,name
来源: https://blog.csdn.net/luChenH/article/details/93724395