package com.genersoft.iot.vmp.utils;
|
|
import org.springframework.beans.BeansException;
|
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* @description:spring bean获取工厂,获取spring中的已初始化的bean
|
* @author: swwheihei
|
* @date: 2019年6月25日 下午4:51:52
|
*
|
*/
|
@Component
|
public class SpringBeanFactory implements ApplicationContextAware {
|
|
// Spring应用上下文环境
|
private static ApplicationContext applicationContext;
|
|
/**
|
* 实现ApplicationContextAware接口的回调方法,设置上下文环境
|
*/
|
@Override
|
public void setApplicationContext(ApplicationContext applicationContext)
|
throws BeansException {
|
SpringBeanFactory.applicationContext = applicationContext;
|
}
|
|
public static ApplicationContext getApplicationContext() {
|
return applicationContext;
|
}
|
|
/**
|
* 获取对象 这里重写了bean方法,起主要作用
|
*/
|
public static <T> T getBean(String beanId) throws BeansException {
|
if (applicationContext == null) {
|
return null;
|
}
|
return (T) applicationContext.getBean(beanId);
|
}
|
|
/**
|
* 获取当前环境
|
*/
|
public static String getActiveProfile() {
|
return applicationContext.getEnvironment().getActiveProfiles()[0];
|
}
|
|
}
|