网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎样解决SpringBoot多线程处理任务无法@Autowired注入bean问题

今天就跟大家聊聊有关怎样解决SpringBoot多线程处理任务无法@Autowired注入bean问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

站在用户的角度思考问题,与客户深入沟通,找到西峡网站设计与西峡网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖西峡地区。

在多线程处理问题时,无法通过@Autowired注入bean,报空指针异常,

在线程中为了线程安全,是防注入的,如果要用到这个类,只能从bean工厂里拿个实例。

解决方法如下:

1.创建一个工具类代码:

package com.hqgd.pms.common;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;

/** * @Description: 获取bean对象的工具类 *

@Author: yaorong * @CreateDate: 2018/12/10 *

/@Componentpublic class SpringContextUtil implements ApplicationContextAware { 

 /**   * 上下文对象实例   */  private static ApplicationContext applicationContext;  

@Override  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {    SpringContextUtil.applicationContext = applicationContext;  } 

 /**   * 获取applicationContext   *   

* @return   *

/  public static ApplicationContext getApplicationContext() {    

return applicationContext;  }  /**   

* 通过name获取 Bean.   *   * @param name   * @return   */  public static Object getBean(String name) {    return getApplicationContext().getBean(name);  }  /**   * 通过class获取Bean.   *   

* @param clazz   

* @param   * @return   */  public static T getBean(Class clazz) {    return getApplicationContext().getBean(clazz);  }  /**   

* 通过name,以及Clazz返回指定的Bean   *  

 * @param name   

* @param clazz   

* @param   * @return   

*/  public static T getBean(String name, Class clazz) {   

 return getApplicationContext().getBean(name, clazz); 

 }}

2.使用方法

@Slf4j@Servicepublic class SerialPortService {  

public static SerialPort mSerialport = null;

//  private SimpMessagingTemplate simpMessage;  

private DataAcquisitionService das;  private SystemService systemService;  private SysParamMapper sysParamMapper; 

 public SerialPortService() {    

this.das = SpringContextUtil.getBean(DataAcquisitionService.class);   

 this.systemService = SpringContextUtil.getBean(SystemService.class);    

this.sysParamMapper = SpringContextUtil.getBean(SysParamMapper.class);

  }}

以上就上有关详解SpringBoot多线程处理任务无法@Autowired注入bean问题解决的全部内容,创新互联全面介绍编程技术、操作系统、数据库、web前端技术等内容。

看完上述内容,你们对怎样解决SpringBoot多线程处理任务无法@Autowired注入bean问题有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


当前名称:怎样解决SpringBoot多线程处理任务无法@Autowired注入bean问题
文章转载:http://bjjierui.cn/article/poidpp.html

其他资讯