import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component("applicationContextHelper") public class ApplicationContextHelper implements ApplicationContextAware { private static ApplicationContext applicationContext; /** * 启动时注入 * @param context * @throws BeansException */ public void setApplicationContext(ApplicationContext context) throws BeansException { applicationContext = context; } /** * 根据类型在spirng容器中取bean * @param clazz * @param <T> * @return */ public static <T> T popBean(Class<T> clazz) { if (applicationContext == null) { return null; } return applicationContext.getBean(clazz); } /** * 根据bean名和类型从spring容器取bean * @param name * @param clazz * @param <T> * @return */ public static <T> T popBean(String name, Class<T> clazz) { if (applicationContext == null) { return null; } return applicationContext.getBean(name, clazz); } }
ps:
避免取出空
<bean class="com.mmall.common.ApplicationContextHelper" lazy-init="false" />