SpringUtil

package com.izkml.mlyun.core.tool.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;


/**
 * @author yejunbo
 */
@Slf4j
public class SpringUtil implements ApplicationContextAware {

   private static ApplicationContext context;

   @Override
   public void setApplicationContext(ApplicationContext context) throws BeansException {
      SpringUtil.context = context;
   }

   public static <T> T getBean(Class<T> clazz) {
      if (clazz == null) {
         return null;
      }
      return context.getBean(clazz);
   }

   public static <T> T getBean(String beanId) {
      if (beanId == null) {
         return null;
      }
      return (T) context.getBean(beanId);
   }

   public static <T> T getBean(String beanName, Class<T> clazz) {
      if (null == beanName || "".equals(beanName.trim())) {
         return null;
      }
      if (clazz == null) {
         return null;
      }
      return (T) context.getBean(beanName, clazz);
   }

   public static ApplicationContext getContext() {
      if (context == null) {
         return null;
      }
      return context;
   }

   public static void publishEvent(ApplicationEvent event) {
      if (context == null) {
         return;
      }
      try {
         context.publishEvent(event);
      } catch (Exception ex) {
         log.error(ex.getMessage());
      }
   }

}

认真可以把事情做对,而用心却可以做到完美
原文地址:https://www.cnblogs.com/fangh816/p/13295418.html