SpringBeanFactory.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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) {
  32. return null;
  33. }
  34. return applicationContext.getBean(beanId);
  35. }
  36. /**
  37. * 获取当前环境
  38. */
  39. public static String getActiveProfile() {
  40. return applicationContext.getEnvironment().getActiveProfiles()[0];
  41. }
  42. }