package com.qxueyou.scc.sys.utils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import java.util.Map; @Component public class SpringContextHolder implements ApplicationContextAware { /** * ÒÔ¾²Ì¬±äÁ¿±£´æApplicationContext,¿ÉÔÚÈÎÒâ´úÂëÖÐÈ¡³öApplicaitonContext. */ private static ApplicationContext context; /** * ʵÏÖApplicationContextAware½Ó¿ÚµÄcontext×¢È뺯Êý, ½«Æä´æÈ뾲̬±äÁ¿. */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextHolder.context = applicationContext; } /** * »ñÈ¡applicationContext * @return */ public ApplicationContext getApplicationContext() { return context; } /** * ͨ¹ýname»ñÈ¡ Bean. * @param name * @return */ public static Object getBean(String name){ return context.getBean(name); } /** * ͨ¹ýclass»ñÈ¡Bean. * @param * @param clazz * @return */ public static Map getBeans(Class clazz){ return context.getBeansOfType(clazz); } /** * ͨ¹ýclass»ñÈ¡Bean. * @param clazz * @param * @return */ public static T getBean(Class clazz){ return context.getBean(clazz); } /** * ͨ¹ýname,ÒÔ¼°Clazz·µ»ØÖ¸¶¨µÄBean * @param name * @param clazz * @param * @return */ public static T getBean(String name, Class clazz){ return context.getBean(name, clazz); } }