package com.fantaibao.config; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @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 getBean(String beanName) { assertApplicationContext(); try { return (T) applicationContext.getBean(beanName); } catch (Exception e) { return null; } } public static T getBean(Class beanName) { assertApplicationContext(); return (T) applicationContext.getBean(beanName); } private static void assertApplicationContext() { if (SpringContext.applicationContext == null) { throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextHolder!"); } } }