问题:
使用springboot多线程,使用@Autowired注入对象报空指针错误!
分析如下:
在线程中为了线程安全,是防注入的;
解决方案:
通过工具类ApplicationContext获取需要的bean;
@Component public class ApplicationContextProvider implements ApplicationContextAware{ /** * 上下文对象实例 */ private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } /** * 获取applicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 通过class获取Bean. */ public static <T> T getBean(Class<T> clazz) { return getApplicationContext().getBean(clazz); }