项目场景:

提示:这里简述项目相关背景:
例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)


问题描述:在多线程处理任务时,注入service报空指针异常


原因分析:

在线程中为了线程安全,是防注入的,所以如果要用到这个类,我们可以从bean工厂取个实列。


解决方案:新建一个获取实例的工具类

package com.example.test.thread;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;@Component
public class ApplicationContextProvider implements ApplicationContextAware {/*** 上下文对象实例*/private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.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 <T>* @return*/public static <T> T getBean(Class<T> clazz) {return getApplicationContext().getBean(clazz);}/*** 通过name,以及Clazz返回指定的Bean** @param name* @param clazz* @param <T>* @return*/public static <T> T getBean(String name, Class<T> clazz) {return getApplicationContext().getBean(name, clazz);}
}

使用:创建一个无参的构造方法,在里面调用工具类的getBean()方法即可。

 private UserinfoService userinfoService;public Running() {this.userinfoService = ApplicationContextProvider.getBean(UserinfoService.class);}

详解 springboot 多线程处理任务无法注入bean相关推荐

  1. Spring详解:WebServlet 中不能注入Bean对象

    1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...

  2. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  3. 详解SpringBoot应用跨域访问解决方案

    详解SpringBoot应用跨域访问解决方案 参考文章: (1)详解SpringBoot应用跨域访问解决方案 (2)https://www.cnblogs.com/zimug/p/11832737.h ...

  4. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  5. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

    1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...

  6. [转]application.properties详解 --springBoot配置文件

    本文转载:http://blog.csdn.net/lpfsuperman/article/details/78287265###; # spring boot application.propert ...

  7. application.properties详解 --springBoot配置文件

    转载侵删:https://blog.csdn.net/lpfsuperman/article/details/78287265 以下为链接原文 # spring boot application.pr ...

  8. 解决SpringBoot使用Quartz无法注入Bean的问题

    2019独角兽企业重金招聘Python工程师标准>>> 依赖 <dependency> <groupId>org.quartz-scheduler</g ...

  9. springboot自动配置的原理_SpringBoot实战:详解SpringBoot自动配置原理

    SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @Confi ...

最新文章

  1. 2018 百越杯 pwn(format WriteUp)
  2. sql between 效率高吗_B2增驾好吗
  3. 在Web浏览器中显示Spring应用程序启动的进度
  4. 在Visual Studio Code配置GoLang开发环境
  5. 人工智能实验2——用遗传算法求解TSP问题
  6. 使用Flume将日志导入OSS
  7. BIOS之内存控制器设置以及内存电路接口分析
  8. android studio javah命令,Android Studio 配置 javah 和 ndk-build 快捷编译
  9. iperf简介与下载安装
  10. 纯MSDOS操作系统下的计算机重启与关机
  11. Navicat模糊查询表
  12. 亚马逊云服务AWS Marketplace “重塑”企业软件SaaS之旅
  13. UVA 167(The Sultan's Successors)八皇后回溯
  14. wps交叉表_利用Excel电子表格制作交叉报表
  15. 快速复制粘贴小工具txmouse
  16. MySQL-SQL语句的优化
  17. Pytorch 单机多卡训练DDP
  18. Vuforia的学习(二)Vuforia的安装
  19. js的高亮关键写法,简单粗暴,行之有效
  20. SwitchHosts安装使用

热门文章

  1. 重温数据结构:理解 B 树、B+ 树特点及使用场景
  2. android id 重名_android 中Xml里面的id重名问题
  3. android蓝牙发送文件夹里,Android蓝牙发送文件问题
  4. 电脑连蓝牙耳机,放音乐是用蓝牙耳机,浏览器不能用蓝牙耳机,用的扬声器,解决方案:
  5. oracle实验和代码
  6. 覆盖Laracon:在线会议会向内倾吗?
  7. Ionic React和Capacitor入门
  8. 【直播聊天室】Android开发源码
  9. Python time库、random库概览+Python里面有趣的东西
  10. Matlab入门--画一个三维山顶图(将来会画马鞍面)