国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot 多線程處理任務(wù) 無法@Autowired注入bean問題解決

ASCH / 3416人閱讀

摘要:在多線程處理問題時(shí),無法通過注入,報(bào)空指針異常,在線程中為了線程安全,是防注入的,如果要用到這個(gè)類,只能從工廠里拿個(gè)實(shí)例。解決方法如下創(chuàng)建一個(gè)工具類代碼獲取對(duì)象的工具類上下文對(duì)象實(shí)例獲取通過獲取通過獲取通過以及返回指定的使用方法

在多線程處理問題時(shí),無法通過@Autowired注入bean,報(bào)空指針異常,

在線程中為了線程安全,是防注入的,如果要用到這個(gè)類,只能從bean工廠里拿個(gè)實(shí)例。

解決方法如下:

1.創(chuàng)建一個(gè)工具類代碼:

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對(duì)象的工具類
 * @Author: yaorong
 * @CreateDate: 2018/12/10
 */

@Component
public class SpringContextUtil implements ApplicationContextAware {
    /**
     * 上下文對(duì)象實(shí)例
     */
    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
@Service
public 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);
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74806.html

相關(guān)文章

  • 消息推送異常重發(fā)需要注意的點(diǎn)(上篇)

    摘要:無證連接進(jìn)行異常記錄并關(guān)閉連接。離線消息檢測(cè)到上線立即推送這是消息推送需要實(shí)現(xiàn)的基本功能之一了,詳見代碼。主要功能協(xié)助進(jìn)行初始化,心跳包檢測(cè),斷線自動(dòng)重連消息推送的第二種方式在下篇中再編寫 消息重發(fā)中需要注意的問題 由于最近工作中接觸了比較多關(guān)閉消息推送以及異常重發(fā)機(jī)制的問題,終于得空總結(jié)一下經(jīng)驗(yàn) 目前接觸的消息推送分為兩種 主動(dòng)推送:一般為websocket建立長(zhǎng)連接實(shí)現(xiàn),此處網(wǎng)上...

    terro 評(píng)論0 收藏0
  • SpringBoot中并發(fā)定時(shí)任務(wù)的實(shí)現(xiàn)、動(dòng)態(tài)定時(shí)任務(wù)的實(shí)現(xiàn)(看這一篇就夠了)

    摘要:也是自帶的一個(gè)基于線程池設(shè)計(jì)的定時(shí)任務(wù)類。其每個(gè)調(diào)度任務(wù)都會(huì)分配到線程池中的一個(gè)線程執(zhí)行,所以其任務(wù)是并發(fā)執(zhí)行的,互不影響。 原創(chuàng)不易,如需轉(zhuǎn)載,請(qǐng)注明出處https://www.cnblogs.com/baixianlong/p/10659045.html,否則將追究法律責(zé)任!!! 一、在JAVA開發(fā)領(lǐng)域,目前可以通過以下幾種方式進(jìn)行定時(shí)任務(wù) 1、單機(jī)部署模式 Timer:jdk中...

    BWrong 評(píng)論0 收藏0
  • Springboot整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)

    摘要:本文使用實(shí)現(xiàn)對(duì)定時(shí)任務(wù)的增刪改查啟用停用等功能。并把定時(shí)任務(wù)持久化到數(shù)據(jù)庫以及支持集群。決定什么時(shí)候來執(zhí)行任務(wù)。定義的是任務(wù)數(shù)據(jù),而真正的執(zhí)行邏輯是在中。封裝定時(shí)任務(wù)接口添加一個(gè)暫停恢復(fù)刪除修改暫停所有恢復(fù)所有 簡(jiǎn)介 Quartz是一款功能強(qiáng)大的任務(wù)調(diào)度器,可以實(shí)現(xiàn)較為復(fù)雜的調(diào)度功能,如每月一號(hào)執(zhí)行、每天凌晨執(zhí)行、每周五執(zhí)行等等,還支持分布式調(diào)度。本文使用Springboot+Myba...

    IamDLY 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<