content: package jnpf.util.context;
  
  import org.springframework.beans.BeansException;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.ApplicationContextAware;
  import org.springframework.stereotype.Component;
  
  /**
   *
   * @author JNPF开发平台组
   * @version V3.1.0
   * @copyright 引迈信息技术有限公司
   * @date 2021/3/16 10:51
   */
  @Component
  public class SpringContext implements ApplicationContextAware {
  
      private static ApplicationContext applicationContext;
  
      @Override
      public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
          SpringContext.applicationContext = applicationContext;
      }
  
      public static ApplicationContext getApplicationContext() {
          assertApplicationContext();
          return applicationContext;
      }
  
      public static <T> T getBean(String beanName) {
          assertApplicationContext();
          return (T) applicationContext.getBean(beanName);
      }
  
      public static <T> T getBean(Class<T> beanName) {
          assertApplicationContext();
          return (T) applicationContext.getBean(beanName);
      }
  
      private static void assertApplicationContext() {
          if (SpringContext.applicationContext == null) {
              throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextHolder!");
          }
      }
  }
  