| 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];  | 
|     }  | 
|   | 
| }  |