| package com.zy.core.thread; | 
|   | 
| import org.slf4j.Logger; | 
| import org.slf4j.LoggerFactory; | 
| import org.springframework.beans.BeansException; | 
| import org.springframework.context.ApplicationContext; | 
| import org.springframework.context.ApplicationContextAware; | 
| import org.springframework.stereotype.Component; | 
|   | 
| @Component | 
| public class SpringContextUtil implements ApplicationContextAware { | 
|     private static final Logger logger = LoggerFactory.getLogger(SpringContextUtil.class); | 
|     private static ApplicationContext applicationContext; | 
|   | 
|     public SpringContextUtil() { | 
|     } | 
|   | 
|     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { | 
|         if (SpringContextUtil.applicationContext == null) { | 
|             SpringContextUtil.applicationContext = applicationContext; | 
|         } | 
|   | 
|         System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext=" + SpringContextUtil.applicationContext + "========"); | 
|     } | 
|   | 
|     public static ApplicationContext getApplicationContext() { | 
|         return applicationContext; | 
|     } | 
|   | 
|     public static Object getBean(String name) { | 
|         return getApplicationContext().getBean(name); | 
|     } | 
|   | 
|     public static <T> T getBean(Class<T> clazz) { | 
|         return getApplicationContext().getBean(clazz); | 
|     } | 
|   | 
|     public static <T> T getBean(String name, Class<T> clazz) { | 
|         return getApplicationContext().getBean(name, clazz); | 
|     } | 
| } |