详解 springboot 多线程处理任务无法注入bean
项目场景:
提示:这里简述项目相关背景:
例如:项目场景:示例:通过蓝牙芯片(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相关推荐
- Spring详解:WebServlet 中不能注入Bean对象
1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- 详解SpringBoot应用跨域访问解决方案
详解SpringBoot应用跨域访问解决方案 参考文章: (1)详解SpringBoot应用跨域访问解决方案 (2)https://www.cnblogs.com/zimug/p/11832737.h ...
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程
1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...
- [转]application.properties详解 --springBoot配置文件
本文转载:http://blog.csdn.net/lpfsuperman/article/details/78287265###; # spring boot application.propert ...
- application.properties详解 --springBoot配置文件
转载侵删:https://blog.csdn.net/lpfsuperman/article/details/78287265 以下为链接原文 # spring boot application.pr ...
- 解决SpringBoot使用Quartz无法注入Bean的问题
2019独角兽企业重金招聘Python工程师标准>>> 依赖 <dependency> <groupId>org.quartz-scheduler</g ...
- springboot自动配置的原理_SpringBoot实战:详解SpringBoot自动配置原理
SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @Confi ...
最新文章
- 2018 百越杯 pwn(format WriteUp)
- sql between 效率高吗_B2增驾好吗
- 在Web浏览器中显示Spring应用程序启动的进度
- 在Visual Studio Code配置GoLang开发环境
- 人工智能实验2——用遗传算法求解TSP问题
- 使用Flume将日志导入OSS
- BIOS之内存控制器设置以及内存电路接口分析
- android studio javah命令,Android Studio 配置 javah 和 ndk-build 快捷编译
- iperf简介与下载安装
- 纯MSDOS操作系统下的计算机重启与关机
- Navicat模糊查询表
- 亚马逊云服务AWS Marketplace “重塑”企业软件SaaS之旅
- UVA 167(The Sultan's Successors)八皇后回溯
- wps交叉表_利用Excel电子表格制作交叉报表
- 快速复制粘贴小工具txmouse
- MySQL-SQL语句的优化
- Pytorch 单机多卡训练DDP
- Vuforia的学习(二)Vuforia的安装
- js的高亮关键写法,简单粗暴,行之有效
- SwitchHosts安装使用