亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java子線程解決獲取主線程的request對象問題

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

java子線程獲取主線程的request對象

問題描述

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

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

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

在主線程下這么寫是沒問題的,但是子線程下request 對象是空的,子線程不共享主線程的request對象

解決辦法

在啟動線程前,執(zhí)行以下代碼即可,子線程也可以共享主線程的request對象

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

示例

多線程子線程獲取不到主線程的request

使用多線程時有時候會碰到子線程獲取不到主線程的request

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

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

// RequestAttributes對象設置為子線程共享
// 解決開啟多線程時子線程獲取不到主線程的request
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(attributes, true);

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

mysql觸發(fā)器語法注意事項

注意點:

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

2. set分號結(jié)尾

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

4. 條件中執(zhí)行的sql語句注意分號結(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é)

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

相關(guān)文章

  • 升級springboot3.x踩坑記錄

    升級springboot3.x踩坑記錄

    本文主要介紹了升級springboot3.x踩坑記錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • Java21虛擬線程實踐

    Java21虛擬線程實踐

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

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

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

    基于ThreadPoolTaskExecutor的使用說明

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

    hibernate4基本配置方式詳解

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

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

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

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

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

    Java設計模式中的橋接模式

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

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

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

    Spring Cloud中Eureka開啟密碼認證的實例

    這篇文章主要介紹了Spring Cloud中Eureka開啟密碼認證的實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論