SpringBeanFactory.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.genersoft.iot.vmp.utils;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. import org.springframework.stereotype.Component;
  6. /**
  7. * @Description:spring bean获取工厂,获取spring中的已初始化的bean
  8. * @author: swwheihei
  9. * @date: 2019年6月25日 下午4:51:52
  10. *
  11. */
  12. @Component
  13. public class SpringBeanFactory implements ApplicationContextAware {
  14. // Spring应用上下文环境
  15. private static ApplicationContext applicationContext;
  16. /**
  17. * 实现ApplicationContextAware接口的回调方法,设置上下文环境
  18. */
  19. @Override
  20. public void setApplicationContext(ApplicationContext applicationContext)
  21. throws BeansException {
  22. SpringBeanFactory.applicationContext = applicationContext;
  23. }
  24. public static ApplicationContext getApplicationContext() {
  25. return applicationContext;
  26. }
  27. /**
  28. * 获取对象 这里重写了bean方法,起主要作用
  29. */
  30. public static Object getBean(String beanId) throws BeansException {
  31. if (applicationContext == null) return null;
  32. return applicationContext.getBean(beanId);
  33. }
  34. /**
  35. * 获取当前环境
  36. */
  37. public static String getActiveProfile() {
  38. return applicationContext.getEnvironment().getActiveProfiles()[0];
  39. }
  40. }