欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java子線(xiàn)程解決獲取主線(xiàn)程的request對(duì)象問(wèn)題

 更新時(shí)間:2023年08月30日 14:16:59   作者:weixin_45644548  
這篇文章主要介紹了java子線(xiàn)程解決獲取主線(xiàn)程的request對(duì)象問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java子線(xiàn)程獲取主線(xiàn)程的request對(duì)象

問(wèn)題描述

業(yè)務(wù)系統(tǒng),多線(xiàn)程處理業(yè)務(wù)是提供性能方法之一,在使用中,我們會(huì)將某些數(shù)據(jù)存儲(chǔ)在request中,傳給后面的組件使用,不需要在方法中定義變量來(lái)傳遞,提高代碼的美觀可讀性,

我們使用request.setAttribute(“xxxx”, “xxxx”)方式傳遞參數(shù),后面的組件或方法使用如下代碼獲取參數(shù):

ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
Object param = request.getAttribute(“xxxx”);

在主線(xiàn)程下這么寫(xiě)是沒(méi)問(wèn)題的,但是子線(xiàn)程下request 對(duì)象是空的,子線(xiàn)程不共享主線(xiàn)程的request對(duì)象

解決辦法

在啟動(dòng)線(xiàn)程前,執(zhí)行以下代碼即可,子線(xiàn)程也可以共享主線(xiàn)程的request對(duì)象

ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(sra, true);

示例

多線(xiàn)程子線(xiàn)程獲取不到主線(xiàn)程的request

使用多線(xiàn)程時(shí)有時(shí)候會(huì)碰到子線(xiàn)程獲取不到主線(xiàn)程的request

原因是子線(xiàn)程還未執(zhí)行完成而主線(xiàn)程已經(jīng)執(zhí)行完畢則導(dǎo)致子線(xiàn)程獲取不到

我們只需要加上兩句代碼即可

// RequestAttributes對(duì)象設(shè)置為子線(xiàn)程共享
// 解決開(kāi)啟多線(xiàn)程時(shí)子線(xiàn)程獲取不到主線(xiàn)程的request
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(attributes, true);

我還遇到一個(gè)問(wèn)題則是即時(shí)按照上面設(shè)置共享,但是獲取不到主線(xiàn)程的header,目前使用了一個(gè)笨方法則是把主線(xiàn)程的header需要使用的參數(shù)在主線(xiàn)程內(nèi)拿出來(lái)定義一個(gè)變量提供給子線(xiàn)程使用。。。

mysql觸發(fā)器語(yǔ)法注意事項(xiàng)

注意點(diǎn):

1. 在if條件里的必須是變量(@xxx)

2. set分號(hào)結(jié)尾

3. end if注意分號(hào)結(jié)尾

4. 條件中執(zhí)行的sql語(yǔ)句注意分號(hào)結(jié)尾例子:Navicat 創(chuàng)建觸發(fā)器

BEGIN
set @dataTime = date(new.dataTime);
set @nowTime = date(now());
set @yearDT = year(new.dataTime);
set @monthDT = month(new.dataTime);
set @yearN = year(now());
set @monthN = month(now());
if @dataTime = @nowTime then
insert into t_senor_data_day values(new.id,new.deviceId,new.senorId,new.tenantId,new.dataValue,new.dataTime,new.receiveTime,new.taskType,new.paramType,new.senorType);
end if;
if @yearDT = @yearN and @monthDT = @monthN then
insert into t_senor_data_month values(new.id,new.deviceId,new.senorId,new.tenantId,new.dataValue,new.dataTime,new.receiveTime,new.taskType,new.paramType,new.senorType);
end if;
end

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 升級(jí)springboot3.x踩坑記錄

    升級(jí)springboot3.x踩坑記錄

    本文主要介紹了升級(jí)springboot3.x踩坑記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Java21虛擬線(xiàn)程實(shí)踐

    Java21虛擬線(xiàn)程實(shí)踐

    java21正式版發(fā)布了,為我們帶來(lái)了很多新的特性,其中我最感興趣的就是虛擬線(xiàn)程,本文主要介紹了Java21虛擬線(xiàn)程實(shí)踐,感興趣的可以;了解一下
    2023-10-10
  • Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測(cè)試

    Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測(cè)試

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測(cè)試,企業(yè)微信回調(diào)是指企業(yè)微信通過(guò)HTTP?POST請(qǐng)求將業(yè)務(wù)數(shù)據(jù)回調(diào)到指定的URL上,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-09-09
  • 基于ThreadPoolTaskExecutor的使用說(shuō)明

    基于ThreadPoolTaskExecutor的使用說(shuō)明

    這篇文章主要介紹了基于ThreadPoolTaskExecutor的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • hibernate4基本配置方式詳解

    hibernate4基本配置方式詳解

    這篇文章給大家?guī)?lái)了hibernate4基本配置方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧
    2017-09-09
  • Spring官網(wǎng)下載各版本jar包的方法

    Spring官網(wǎng)下載各版本jar包的方法

    這篇文章主要介紹了Spring官網(wǎng)下載各版本jar包的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • 淺談java面向?qū)ο蟮臄?shù)組化信息處理

    淺談java面向?qū)ο蟮臄?shù)組化信息處理

    下面小編就為大家?guī)?lái)一篇淺談java面向?qū)ο蟮臄?shù)組化信息處理。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java設(shè)計(jì)模式中的橋接模式

    Java設(shè)計(jì)模式中的橋接模式

    這篇文章主要介紹了Java設(shè)計(jì)模式中的橋接模式,其是一種結(jié)構(gòu)型設(shè)計(jì)模式,是指將實(shí)現(xiàn)與抽象放在兩個(gè)不同的類(lèi)層次中,使兩個(gè)層次可以獨(dú)立改變
    2022-07-07
  • Java來(lái)實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例

    Java來(lái)實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例

    本文主要介紹了Java來(lái)實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Spring Cloud中Eureka開(kāi)啟密碼認(rèn)證的實(shí)例

    Spring Cloud中Eureka開(kāi)啟密碼認(rèn)證的實(shí)例

    這篇文章主要介紹了Spring Cloud中Eureka開(kāi)啟密碼認(rèn)證的實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論